如何同时运行多个Laravel排队作业?

时间:2015-10-08 20:30:54

标签: php laravel queue supervisord

我有一个运行多种作业的系统(Laravel 5.1队列)。我用数据库队列驱动程序。

主管确保3'实例' queue:work的任务一直作为守护进程运行。

ps aux | grep queue证实了这一点 - 三个进程正在等待工作。

有时我可以在数据库表中看到多个作业(没有延迟)记录,但总是只有其中一个将reserved标志设置为1。

我做错了什么?

为什么3个守护进程工人没有处理队列中的其他工作?

如何确保可以同时完成多项工作?

更新

我写了一份睡眠时间为15秒的作业然后发送了三份新工作(同一课程)。

我在我的开发服务器上运行它并且它有效。同时保留了三份工作。一旦处理了其中一个 - 另一个从队列中取出并保留。人们期望的行为。

最后,我在生产服务器上运行了同样的情况,但是没有用。即使环境相似,一次保留一个工作,三个队列:工作流程等。

然后我请求supervisord重启工人,它也开始工作了。

所以:它确实以这种方式工作。问题是我不知道可能导致我遇到的问题是什么以及什么时候发生?我该如何避免这种情况,如何知道它现在好不了?

0 个答案:

没有答案