如何让exec自己运行,php页面继续运行
4个回答
展开全部
当PHP作为后端处理需要完成一些长时间处理,为了快速响应页面请求,不作结果返回判断的情况下,可以有如下措施:
一、若你使用的是FastCGI模式,使用fastcgi_finish_request()能马上结束会话,但PHP线程继续在跑。
这个例子输出结果可看到输出program start.后会话就返回了,所以debug那个输出浏览器是接收不到的,而log.txt文件能完整接收到三个完成时间。
二、使用fsockopen的非阻塞模式请求另外的网址
三、使用Gearman
Gearman是一个具有php扩展的分布式异步处理框架,能处理大批量异步任务。
一、若你使用的是FastCGI模式,使用fastcgi_finish_request()能马上结束会话,但PHP线程继续在跑。
这个例子输出结果可看到输出program start.后会话就返回了,所以debug那个输出浏览器是接收不到的,而log.txt文件能完整接收到三个完成时间。
二、使用fsockopen的非阻塞模式请求另外的网址
三、使用Gearman
Gearman是一个具有php扩展的分布式异步处理框架,能处理大批量异步任务。
展开全部
在php中,如果出现exec();那么php是先运行完exec中的外部命令,然后继续执行接下来的php语句的。有什么办法让exec自己在那运行,php语句不等待,自己运行下去,让浏览器不用等待。谢谢。
Note:
如何程序使用此函数启动,为了能保持在后台运行,此程序必须将输出重定向到文件或其它输出流。 否则会导致 PHP 挂起,直至程序执行结束。
exec("命令 > null");
Note:
如何程序使用此函数启动,为了能保持在后台运行,此程序必须将输出重定向到文件或其它输出流。 否则会导致 PHP 挂起,直至程序执行结束。
exec("命令 > null");
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-05-07
展开全部
让exec先处理,php不等待继续执行后续代码?
你可以看看多线程,或者用队列。
你可以看看多线程,或者用队列。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定时任务。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询