PHP高级作业队列


PHP Advance Job Queue

我正在使用cron(意味着服务器端并自动完成所有作业)在一天内制作2000个作业的脚本。

,但作业需要同时运行10(或指定no。Of jobs .

如果你看到IDM(互联网下载管理器)有一个队列功能,它一次运行多个作业,如果有一个完成,它开始另一个。我想要这样的…

我该怎么做?

您可以继续编写自己的自定义作业队列处理程序。为每个作业生成一个单独的进程,并在父进程中继续收集响应。当上一个任务完成后重新启动新的任务。

或者您也可以深入研究使用Gearman(特别是如果您有多个并行运行作业的机器)。还可以查看异步处理-with-php-one-worker-per-job

的解决方案。

我不同意创建自己的作业队列处理程序。你会遇到一些你没有预料到的问题,而现有的项目已经遇到并处理过了。

我会使用像beanstalkd这样的东西,构建一个通用脚本来处理队列中的作业,然后生成$x子进程来遍历和处理它们。

还有wordpress作业队列-参见http://code.trac.wordpress.org/wiki/JobsDocs(我没有使用它,所以不能保证它)

最好编写自己的作业队列处理程序。
你可以让php ignore_user_abort也成为一个守护进程…

但是在你这样做之前要确保你对它有一些控制。