gpt4 book ai didi

使用 cron 的 Laravel 队列 worker

转载 作者:行者123 更新时间:2023-12-04 12:16:54 25 4
gpt4 key购买 nike

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

我在阅读后喜欢跟随它,但我仍然不相信这是最好的方法。

在我的 cron 中每分钟运行一次并调用 php artisan schedule:run
在我的控制台/内核中

protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --once')->everyMinute()->withoutOverlapping();
}

我添加了 --once 参数,因为队列 worker 在完成时不存在,并且我不希望每分钟运行许多新进程。

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

我读到我可以返回 null 以退出工作人员,但如果可以这样做,那么我如何才能在最后一项工作完成后才返回 null 呢?

最佳答案

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

你的 cronjob 应该运行这个:php /path/to/laravel/artisan queue:work --stop-when-empty
Queue worker command source code on Github

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

orobogenius/sansdaemon

关于使用 cron 的 Laravel 队列 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46487907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com