1 Queue with Database drivar.My queue:work命令在每分钟运行。
我想执行最多2次尝试的工作,它正在工作。但问题是我的队列:工作cron每分钟运行一次,即使早期工作正在进行中,它也会尝试相同的工作。
如何避免使用queue:work命令来运行正在进行的作业。
由于
答案 0 :(得分:0)
queue:work
将不会尝试执行已经执行的作业,因为它在进程开始时获得了保留标志。你可能遇到的是你的工作在下一次Cron执行之前失败的事实,所以它只是永远地再次尝试相同的工作。
每次调用--tries
时,您都可以使用queue:work
来限制作业的尝试次数。因此,如果您运行php artisan queue:work --tries=2
,则会尝试执行3次作业,如果它失败了3次,则会将其添加到failed_jobs
表中。
确保使用php artisan queue:failed-table
准备好环境(数据库迁移)。