我有一个 PHP 脚本需要运行一些非常繁重的 imagemagick 命令。
这些命令可能由多个用户同时运行,因此用户 a、b、c 和 d 都将运行相同的任务。我想把它变成一个后台进程,这样我就可以使用 jQuery,例如,在处理过程中显示一个加载栏。
实现此目标的最佳方法是什么?或者,还有其他更简单的方法吗?
最佳答案
有很多指南如何使用 PHP 创建守护进程:
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/
你可以创建一个在后台运行的守护进程,从一个包含所有需要处理的作业的数据库表中读取,然后你可以每隔一段时间检查一下你的前端进程,直到所有作业都被清除对于那个特定的过程。
您也可以为此使用消息队列,这样您就可以并行使用多个守护进程(例如在多核系统上)而不会发生冲突。
关于php - 如何编写 PHP 工作进程代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8946605/