Laravel 5.1队列 - 如何避免队列:工作命令以获取正在进行的作业

时间:2016-07-12 12:06:19

标签: laravel laravel-5 queue

1 Queue with Database drivar.My queue:work命令在每分钟运行。

我想执行最多2次尝试的工作,它正在工作。但问题是我的队列:工作cron每分钟运行一次,即使早期工作正在进行中,它也会尝试相同的工作。

如何避免使用queue:work命令来运行正在进行的作业。

由于

1 个答案:

答案 0 :(得分:0)

queue:work将不会尝试执行已经执行的作业,因为它在进程开始时获得了保留标志。你可能遇到的是你的工作在下一次Cron执行之前失败的事实,所以它只是永远地再次尝试相同的工作。

每次调用--tries时,您都可以使用queue:work来限制作业的尝试次数。因此,如果您运行php artisan queue:work --tries=2,则会尝试执行3次作业,如果它失败了3次,则会将其添加到failed_jobs表中。

确保使用php artisan queue:failed-table准备好环境(数据库迁移)。