Laravel 5.0调度命令(可能有队列)

时间:2015-05-27 17:40:16

标签: php laravel cron command queue

我在laravel 5.0中掌握Queues的概念时遇到了一些麻烦。据我所知,队列存储了一个由php artisan queue:listen命令或php artisan queue:work --daemon命令执行的命令列表。

如果我错了,请纠正我,但是php artisan queue:listen只是等到队列中有命令然后执行它,对吧?然后php artisan queue:work --daemon命令做什么比较?此命令一次只能运行一个吗?

无论如何,我希望完成的任务是......我想定期检查队列中是否有命令以及是否有我希望执行它们。由于这是一个周期性问题,我假设会使用chron,但我如何检查是否有未完成的命令?我会在队列表上运行查询吗?如果我这样做,我将如何发送命令?或者我应该只计算php artisan queue:listen命令

1 个答案:

答案 0 :(得分:0)

queue:listen和queue:work之间的主要区别在于,第二个只看到有一个作业在等待,接受并处理它。就是这样。

侦听器虽然作为后台进程运行,但始终检查可用的作业。如果有一个新工作,那么它将被处理(这个过程稍微困难一点,但这是主要的想法)。

所以基本上如果你需要在它们出现后立即处理你的命令(作业),你可能想要使用这些队列。

如果你需要定期做某事(例如每2小时或每周一上午9点​​等),你应该选择cron + Schedule。

我不建议按照你的描述组合它们。另请注意,如果您不希望工作可以延迟,请尽快处理。