Laravel 队列工作者与 cron
Laravel queue worker with cron
我正在尝试让我的网站在每次有人新注册时发送确认电子邮件。
我读了之后很喜欢,但我仍然不相信这是最好的方法。
在我的 cron 中每分钟运行一次并调用 php artisan schedule:run
在我的 console/Kernel
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --once')->everyMinute()->withoutOverlapping();
}
我添加了 --once 参数,因为完成后队列工作器不存在,我不希望每分钟有很多新进程 运行。
有没有办法让队列工作人员完成所有作业并退出,然后在一分钟后再次启动它,这样我就没有很多实例,或者它只是一个实例??
我读到我可以 return null 退出 worker,但是如果可以这样做,那么我怎么才能 return 只有在最后一个工作完成后才为 null?
对于仍在寻找解决方案的任何人,在 laravel 5.7 他们添加了对 运行 队列中所有作业的支持,然后在所有作业完成后停止队列工作程序。
你的 cronjob 应该 运行 这个:php /path/to/laravel/artisan queue:work --stop-when-empty
Queue worker command source code on Github
此外还有一个适用于旧版本 laravel
的软件包
我正在尝试让我的网站在每次有人新注册时发送确认电子邮件。
我读了之后很喜欢,但我仍然不相信这是最好的方法。
在我的 cron 中每分钟运行一次并调用 php artisan schedule:run
在我的 console/Kernel
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --once')->everyMinute()->withoutOverlapping();
}
我添加了 --once 参数,因为完成后队列工作器不存在,我不希望每分钟有很多新进程 运行。
有没有办法让队列工作人员完成所有作业并退出,然后在一分钟后再次启动它,这样我就没有很多实例,或者它只是一个实例??
我读到我可以 return null 退出 worker,但是如果可以这样做,那么我怎么才能 return 只有在最后一个工作完成后才为 null?
对于仍在寻找解决方案的任何人,在 laravel 5.7 他们添加了对 运行 队列中所有作业的支持,然后在所有作业完成后停止队列工作程序。
你的 cronjob 应该 运行 这个:php /path/to/laravel/artisan queue:work --stop-when-empty
Queue worker command source code on Github
此外还有一个适用于旧版本 laravel
的软件包