美文网首页
PHP非阻塞执行程序的两种方法

PHP非阻塞执行程序的两种方法

作者: 向南路人 | 来源:发表于2020-03-23 16:21 被阅读0次

方法1:

使用fastcgi_finish_request():
示例:

$data = [
  "code" => 0,
  "msg"  => ""
];
header("'Content-type:text/json'");
echo json_encode($data,JSON_UNESCAPED_UNICODE);
fastcgi_finish_request();//至此,响应已经返回给客户端,但程序还可以继续执行
......//N多操作,并不会占用接口响应时间
echo "hello";//此处不会再返回给客户端

方法2:

使用shell非阻塞方式执行php脚本:
示例:

$data = [
  "code" => 0,
  "msg"  => ""
];
shell_exec("/use/local/php/bin/php /www/t.php  > /dev/null 2>&1 &");//此脚本可以执行N多操作,不会占用接口响应时间
header("'Content-type:text/json'");
exit(json_encode($data,JSON_UNESCAPED_UNICODE));

需要注意的是shell脚本后面的参数" > /dev/null 2>&1 &",没有这些参数,执行shell也是会阻塞的,这些参数的作用是将命令输出的内容写入系统的一个回收站文件,这样程序就不会阻塞。此写法并不是唯一的。

相关文章

  • PHP非阻塞执行程序的两种方法

    方法1: 使用fastcgi_finish_request():示例: 方法2: 使用shell非阻塞方式执行ph...

  • PHP非阻塞实现方法

    转自https://www.awaimai.com/660.html 为让 PHP 在后端处理长时间任务时不阻塞,...

  • nodeJs-异步请求

    阻塞i/o与非阻塞i/o 以上两个实例我们了解了阻塞与非阻塞调用的不同。第一个实例在文件读取完后才执行完程序。 第...

  • 关于菜鸟教程的node学习笔记

    1. 阻塞与非阻塞 阻塞: 按照代码顺序执行非阻塞:不按照代码顺序执行 2.事件循环 EventEmitter:o...

  • 知识点总结

    1,阻塞与非阻塞 阻塞:代码严格按照顺序执行、输出结果 非阻塞:代码跳过顺序执行、输出结果列:回调输出,定时输出(...

  • node的阻塞与非阻塞

    引入child_process模块中的exec方法,可以被用来开启一个子进程来执行其他的程序 这里为了进行非阻塞操...

  • 9.8动态语言层并发处理视频

    相关概念什么是进程、线程、协程什么是多进程、多线程同步阻塞模型异步非阻塞模型PHP并发编程实践 进程是一个“执行中...

  • Thread类常用方法

    常用方法 join 当某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加...

  • ios中设置延迟执行操作

    第一种方法:performSelector方法 此方式要求必须在主线程中执行,否则无效。 是一种非阻塞的执行方式,...

  • 深入浅出nodejs(异步I/O)

    异步IO实现现状 I/O的阻塞与非阻塞:IO对于操作系统内核而言,只有阻塞与非阻塞两种方式。阻塞模式的I/O会造成...

网友评论

      本文标题:PHP非阻塞执行程序的两种方法

      本文链接:https://www.haomeiwen.com/subject/vymwyhtx.html