我通过laravel队列在脚本上发送电子邮件。
我需要在脚本上运行php artisan queue:work
来运行laravel队列。
我想监视此php artisan queue:work
是否失败,我再次运行。我的解决方案是在玉米作业上执行这样的命令
class Kernel extends ConsoleKernel
{
protected function schedule(Schedule $schedule)
{
if(check queue failed)
$schedule->command("php artisan queue:work")->cron("* * * * *");
}
}
我有两个问题
1-我应该使用什么条件代替check queue failed
2-有更好的解决方案吗?
答案 0 :(得分:1)
这是我的工作,遵循一些在线教程;它工作正常并且没有创建更多实例
$schedule->command('queue:work --queue=high,low --tries=3')
->everyMinute()
->withoutOverlapping();
重要的部分是->withoutOverlapping()
,如果该命令不再运行,它将再次执行该命令。我仍然必须找到一种方法来测试如果挂起会发生什么,希望其他人可以改善这个答案