带cron的Laravel队列工作器

带cron的Laravel队列工作器,laravel,cron,laravel-queue,Laravel,Cron,Laravel Queue,我试图让我的网站在每次有人注册时发送确认电子邮件 我在读了相关文章后就喜欢跟着做了,但我仍然不相信这是最好的方法 在my cron中,它每分钟运行一次,并调用php artisan schedule:run 在我的控制台/内核中 protected function schedule(Schedule $schedule) { $schedule->command('queue:work --once')->everyMinute()->withoutOverlappi

我试图让我的网站在每次有人注册时发送确认电子邮件

我在读了相关文章后就喜欢跟着做了,但我仍然不相信这是最好的方法

在my cron中,它每分钟运行一次,并调用
php artisan schedule:run

在我的控制台/内核中

protected function schedule(Schedule $schedule)
{
    $schedule->command('queue:work --once')->everyMinute()->withoutOverlapping();
}
我添加了--once参数,因为队列工作者在完成时不存在,并且我不希望每分钟都有许多新进程运行

有没有办法让队列工作人员完成所有作业并退出,然后在一分钟后再次启动,这样我就不会有很多实例,还是只有一个实例


我读到我可以返回null以退出工作程序,但如果可以这样做,那么我如何才能仅在最后一个作业完成后返回null?

对于仍在寻找解决方案的任何人,在laravel 5.7中,他们添加了支持,以运行队列中的所有作业,然后在所有作业完成后停止队列工作程序

您的cronjob应该运行以下命令:
php/path/to/laravel/artisan队列:工作——空时停止

此外,还有一个适用于较旧版本laravel的软件包