【问题标题】:Laravel queue worker with cron使用 cron 的 Laravel 队列工作者
【发布时间】:2018-03-11 07:18:54
【问题描述】:

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

我在阅读后就这样做了,但我仍然不相信这是最好的方法。

在我的 cron 中每分钟运行一次并调用 php artisan schedule:run

在我的控制台/内核中

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

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

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

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

【问题讨论】:

    标签: laravel cron laravel-queue


    【解决方案1】:

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

    你的 cronjob 应该运行这个:php /path/to/laravel/artisan queue:work --stop-when-empty

    Queue worker command source code on Github

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

    orobogenius/sansdaemon

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 2022-10-20
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      相关资源
      最近更新 更多