PHP 后台进程

2022-08-30 12:00:27

我正在尝试制作一个PHP脚本,我已经完成了脚本,但是完成它设计的过程需要大约10分钟。这不是问题,但是我认为我必须一直保持页面加载,这很烦人。我可以拥有它,以便我启动该过程,然后在10分钟后返回并仅查看它生成的日志文件吗?


答案 1

好吧,你可以使用“ignore_user_abort(真)”

因此脚本将继续工作(密切关注脚本持续时间,也许添加“set_time_limit(0)”)

但这里有一个警告:您将无法停止具有以下两行的脚本:

ignore_user_abort(true); 
set_time_limit(0);

除了你可以直接访问服务器并杀死那里的进程!(去过那里,做了一个无休止的循环,一遍又一遍地叫自己,让服务器尖叫着停下来,被喊了一声......)


答案 2

听起来你应该有一个队列和一个外部脚本来处理队列。

例如,您的 PHP 脚本应将一个条目放入数据库表中并立即返回。然后,每分钟运行的 cron 检查队列并为每个作业分叉一个进程。

这里的优点是你不会锁定apache线程10分钟。


推荐