PHP异步执行任务fsockopen的实用方法

我们创建了一个基于fsockopen的函数,这个函数中利用fsockopen去访问url,但是在访问时,并不要求获取url显示的内容,而是仅仅发出访问请求,请求到达后马上关闭这个访问。

这样做的好处就是无需再等待被访问的url是否返回了可靠的信息,节约了时间,这段代码的执行时间在0.1-0.2秒之间,对于普通访客而言,几乎察觉不到。因此,在使用时,仅需要调用这个函数和对应的url即可。不过,这里并没有提供数据传输的部分,如何传输数据,其实只需要在$header中增加post的内容即可。/**

* @生生 2018/12/24 19:25:06

* [asynchronous PHP异步执行任务]

* @param string $url 执行任务的url地址

* @param array $post_data 需要post提交的数据POST

* @param array $cookie cookie数据用于登录等的设置(此处内部调用,无需鉴权)

* @return boole

*/

public function asynchronous($url,$post_data = array())

{

$url_array = parse_url($url);

dump($url_array);

//用fsockopen()尝试连接

$fp = fsockopen($url_array['host'], 80, $errno, $errstr, 30);

if (!$fp) {

echo "$errstr ($errno)
\n";

} else {

//建立成功后,向服务器写入数据

$getPath = isset($url_array['path']) ? $url_array['path'] : '/';

$out = "GET /".$getPath."/ HTTP/1.1\r\n";

$out .= "Host:".$url_array['host']."\r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

/*忽略执行结果

while (!feof($fp)) {

echo fgets($fp, 128);

}*/

//关闭链接

fclose($fp);

}

}

调用方法/**

* 异步方法

* 参数:(string)要执行的方法url,(array)传入参数

*/

function yibu(){

$this->asynchronous('https://www.liqingbo.cn/index.php/admin/index/test',['1'=>'haha']);

//直接返回结果

echo '操作成功';

}

推荐教程:《PHP视频教程》

php fsockopen 异步,异步执行PHP任务fsockopen的干货相关推荐

  1. 【Android 异步操作】AsyncTask 异步任务 ( AsyncTask 异步任务执行方法 execute 方法相关源码解析 )

    文章目录 一.AsyncTask 异步任务执行方法 execute() 引入 二.AsyncTask 异步任务执行方法 execute() 三.sDefaultExecutor 线程池解析 四.exe ...

  2. jooq 执行sql_使用jOOQ和Java 8的CompletableFuture进行异步SQL执行

    jooq 执行sql 响应式编程是一个新的流行词,它实际上仅表示异步编程或消息传递. 事实是,函数语法极大地帮助构建了异步执行链,今天,我们将看到如何使用jOOQ和新的CompletableFutur ...

  3. 具有jOOQ和Java 8的CompletableFuture的异步SQL执行

    响应式编程是一个新的流行词,它实际上仅表示异步编程或消息传递. 事实是,函数语法极大地帮助构建了异步执行链,今天,我们将看到如何使用jOOQ和新的CompletableFuture API在Java ...

  4. Java笔记(十七) 异步任务执行服务

    异步任务执行服务 一.基本原理和概念 一)基本接口 1)Runnable和Callable:表示要执行的异步任务. 2)Executor和ExecutorService:表示执行服务. 3)Futur ...

  5. Spring Boot技术之异步任务执行

    在spring中有一个AsyncConfigurer接口,实现该接口可以配置异步线程池,源码部分如下: public interface AsyncConfigurer {/*** 获取线程池* Th ...

  6. JS异步:执行原理与回调

    JS异步:执行原理与回调 一.JS异步的执行原理 二.JS异步中的回调 一.JS异步的执行原理   我们知道JavaScript是单线程的,而浏览器是多线程的.单线程执行任务需要一个个排队进行,假如一 ...

  7. 关于 JS 中,实现在异步代码执行完毕再执行后续代码

    因为 js 是单线程,所有的同步任务要等前一个任务执行完毕,再执行下一个任务. function fn1() {console.log("fn1")fn2()fn3() }func ...

  8. 同步任务和异步任务执行过程

    同步任务和异步任务执行过程 1.同步任务由JavaScript主线程依次执行 2.异步任务委托给宿主环境执行. 3.已完成的异步任务对应的回调函数,会被加入到任务队列中等待执行. 4.JavaScri ...

  9. 【JavaScript】同步与异步-异步与并行-异步运行机制-为什么要异步编程-异步与回调-回调地狱-JavaScript中的异步操作

    文章目录 1. 同步与异步 1.1 同步行为synchronous 1.1.1 特点 1.1.2 例子 1.2 异步行为asynchronous 1.2.1 必要性 1.2.2 特点 1.2.3 例子 ...

最新文章

  1. JGG: 赵方庆、赵翔等开发高效捕获RNA病毒基因组的宏转录组建库测序新技术
  2. 澎思科技马原:AI安防竞争还未结束,落地进入后发优势时代 | MEET2020
  3. 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED
  4. iOS之深入解析WKWebView加载的生命周期与代理方法
  5. 等待十年,史上第一个 64 位版 Visual Studio 将于今夏公开首个预览版!
  6. VSCode 扩展中出现严重漏洞,可导致供应链攻击
  7. 一个缺陷管理系统数据库设计和界面设计分析
  8. Hibernate集合属性的元素为组件(三)
  9. 1108 Finding Average (20)(字符串)
  10. java 字符串截取_java截取字符串几种方式
  11. JDK动态代理原理解析
  12. ElasticSearch 7.15.2 使用java canal 接入实现灵活化增量数据准实时同步
  13. 榜单!DMS/OMS高增速,舱内感知交互摄像头供应商TOP10
  14. 计算机的任务管理器在哪,怎么打开任务管理器 多种方法详细教学
  15. shp文件导入postgresql数据库
  16. linux搭建ssh服务器,并用xshell远程连接
  17. 使用fsck命令检查并修复linux文件系统
  18. 23_字符串的格式化_format 函数_% 占位符 _ f-string _Template _模板字符等
  19. sja1000 中断_SJA1000的错误中断处理
  20. 全国天气预报信息数据 API

热门文章

  1. jquery点击按钮显示和隐藏div
  2. Codeforces Round #452 (Div. 2)
  3. 禁用ViewPager边界滑动效果(转)
  4. 华为内部狂转好文:有关大数据,看这一篇就够了
  5. UVA 11806 Cheerleaders (容斥原理)
  6. ajax 在php中一个运用
  7. SqlServer的分割函数
  8. JavaScript 中,定义函数时用 var foo = function () {} 和 function foo() 有什么区别?
  9. 关于项目中一些时间转换的问你题 -紫叶and妍
  10. 用户控件与自定义控件