【问题标题】:Laravel queue retries delayLaravel 队列重试延迟
【发布时间】:2015-05-06 02:31:14
【问题描述】:

我正在使用 Laravel 构建一个大型应用程序,并在此应用程序中找到队列的使用。我现在为此使用 beanstalkd 服务。但是,我一直在寻找这个设置的答案。有没有办法让队列重试不立即处理。我希望它在 n 秒后重试。谢谢

【问题讨论】:

    标签: laravel laravel-4 queue beanstalkd


    【解决方案1】:

    尝试使用内置的Queue 服务并使用以下内容

    Queue::later(Carbon::now()->addMinutes(1), $task);
    

    Relevant docs

    【讨论】:

    • 这可以实现重试吗? @scopey
    • 可能会挂接到failing 挂钩并进行自定义重试。此外,在队列工作程序上设置 --delay 标志会产生模棱两可的延迟。不完全确定是否有一套方法可以延迟特定的重试。
    • 我只是尝试在 Laravel 4.2 上使用以下两个命令发送电子邮件(并期望它们失败):php artisan queue:work --daemon --tries=3 --sleep=60php artisan queue:work --daemon --tries=3 --sleep=5 --delay=10 我可以确认使用第二个命令,重试是延迟 10 秒后尝试,而不是立即重试(我使用第一个命令时就是这种情况)。
    【解决方案2】:

    要延迟下一次重试,只需将--delay=[NUM_OF_SECONDS] 添加到您的命令中。

    例如,在失败后等待 30 秒重试,只需运行:php artisan queue:work tries=3 --delay=30

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 2015-09-30
      • 2015-11-06
      • 2021-07-12
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多