我有一个PHP脚本,需要运行一些非常重要的imagemagick命令。
这些命令可能由多个用户同时运行,因此用户a,b,c和d都将运行相同的任务。我想把它变成后台进程,所以我可以使用jQuery来处理加载条。
实现这一目标的最佳方法是什么?或者,是否有其他方法可能更容易?
答案 0 :(得分:3)
有很多指南如何使用PHP创建Deamons:
http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/
或如何处理流程:
http://waynepan.com/2007/10/11/how-to-use-ignore_user_abort-to-do-process-out-of-band/
您可以创建一个在后台运行的守护程序,从包含所有需要处理的作业的数据库表中读取,然后您可以每隔一段时间检查该表的前端进程,直到所有作业都已清除对于那个特定的过程。
您也可以使用消息队列,因此您可以并行使用多个守护程序(例如在多核系统上)而不会发生冲突。
答案 1 :(得分:-2)
我寻求了几个小时,至少,使用 Cron Jobs ,我很容易找到解决方案。在 cPanel 中,您可以转到高级 - > Cron Jobs,并在那里使用命令行中的PHP脚本安排任务。
执行脚本php的命令示例:
/usr/bin/wget http://www.example.com/miscript.php
或更好:
php /home/USER/public_html/miscript.php