我试图让我的网站每次有人注册时都会发送确认电子邮件。
我在阅读之后就这样做了,但我仍然不相信这是最好的方法。
我的cron中的每分钟运行一次并调用php artisan schedule:run
在我的控制台/内核
中protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --once')->everyMinute()->withoutOverlapping();
}
我添加了--once参数,因为队列工作程序在完成时不存在,并且我不希望每分钟都运行许多新进程。
有没有办法让队列工作者完成所有作业并退出,然后再一分钟后启动它,这样我就没有很多实例,或者它只是一个实例?
我读到我可以返回null来退出工作者,但如果可以这样做,那么我怎样才能在最后一个工作完成后返回null?
答案 0 :(得分:3)
对于仍在寻找解决方案的任何人,他们在laravel 5.7中添加了对运行队列中所有作业的支持,然后在完成所有作业后停止队列工作器。
Queue worker command source code on Github
另外还有一个适用于旧版本laravel的软件包