北京 php 进程,php用什么办法实现异步任务?

用户投稿 185 0

关于“php进程任务”的问题,小编就整理了【3】个相关介绍“php进程任务”的解答:

php用什么办法实现异步任务?php实现异步任务的方法:

通用的异步执行文件 exec.phpsleep(8);

北京$data = "--- type " . date("Y-m-d H:i:s") . " ---\n";

file_put_contents("../log.txt", $data, FILE_APPEND);

popen

北京通过 popen() 函数打开进程文件指针,从而能异步执行脚本文件。(只在linux下有效)pclose(popen("php exec.php &", 'r'));

echo 1;

北京如何将我的php脚本以守护进程的方式一直运行?写好php脚本。建议定期检测内存占用,核心逻辑就不写了。这个跟业务有关。 if(memory_get_usage()>100*1024*1024){ exit(0);//大于100M内存退出程序,防止内存泄漏被系统杀死导致任务终端 } 假设该php文件的路径为/root/run.php

北京 打开终端 setsid php /root/

北京run.php

北京 > /dev/null & 编辑进程监控脚本,当进程不存在时,自动重启 /root/

北京monitor.sh

北京 #!/bin/bash alive=`ps aux|grep root\/run|grep -v grep|wc -l` if [ $alive -eq 0] then php /root/

run.php

北京 > /dev/null & fi 添加计划任务(每分钟检测一次) crontab -e * * * * * /root/

北京monitor.sh

> /dev/null &

北京PHP到底是单进程还是多进程?php在web上运行是单进程的,具体原因如下:

北京1、PHP是一个单线程的脚本开发语言,它常在Web开发及系统集成中出现。PHP是单进程单线程的,当处理复杂的业务的时候我们会发现他串行执行命令的时候CPU、磁盘、内存等利用的都很低有很多时候都是在排队等待,有的时候我们想并发的让他去执行一批任务然后一起拿解决结果是一件很痛苦的事情(自己用pthread或者其他方式才能解决,但是这很痛苦)开发语言一直在升级变化适应需要。另外,可以考虑通讯使用Swoole。

北京2、解决方案如下:分前后端,前端可以通过消息中间件,同步、异步 调用一个或多个接口。但是socket的扩展确确实实不咋好用。不是普通小企业能做的出来的。

到此,以上就是小编对于“php进程任务”的问题就介绍到这了,希望介绍关于“php进程任务”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!