PHP 后台进程
2022-08-30 12:00:27
我正在尝试制作一个PHP脚本,我已经完成了脚本,但是完成它设计的过程需要大约10分钟。这不是问题,但是我认为我必须一直保持页面加载,这很烦人。我可以拥有它,以便我启动该过程,然后在10分钟后返回并仅查看它生成的日志文件吗?
我正在尝试制作一个PHP脚本,我已经完成了脚本,但是完成它设计的过程需要大约10分钟。这不是问题,但是我认为我必须一直保持页面加载,这很烦人。我可以拥有它,以便我启动该过程,然后在10分钟后返回并仅查看它生成的日志文件吗?
好吧,你可以使用“ignore_user_abort(真)”
因此脚本将继续工作(密切关注脚本持续时间,也许添加“set_time_limit(0)”)
但这里有一个警告:您将无法停止具有以下两行的脚本:
ignore_user_abort(true);
set_time_limit(0);
除了你可以直接访问服务器并杀死那里的进程!(去过那里,做了一个无休止的循环,一遍又一遍地叫自己,让服务器尖叫着停下来,被喊了一声......)
听起来你应该有一个队列和一个外部脚本来处理队列。
例如,您的 PHP 脚本应将一个条目放入数据库表中并立即返回。然后,每分钟运行的 cron 检查队列并为每个作业分叉一个进程。
这里的优点是你不会锁定apache线程10分钟。