【问题标题】:"how fix laravel job has been attempted too many times or run too long'"“如何修复 laravel 作业已尝试太多次或运行时间过长”
【发布时间】:2019-05-31 04:47:15
【问题描述】:

我使用队列发送短信。工作得很好。接下来,Ubuntu服务器出现的问题是我必须重新安装supervisor。重置后出现此问题。

production.ERROR: Illuminate\Queue\MaxAttemptsExceededException: 已尝试排队的作业太多次。该作业之前可能已超时。在 /home/.../.../vendor/laravel/framework/src/Illuminate/Queue/Worker.php:385

【问题讨论】:

  • 请检查您的代码,它会引发错误,这就是它运行多次的原因。
  • 使用这个命令来增加你在队列中的执行时间 php artisan queue:work --timeout=12000
  • php artisan queue:work --timeout=12000 我运行它但不工作或不显示任何东西
  • 我认为您的队列是空的,这就是它没有显示任何内容的原因。
  • 请检查您的工作表。

标签: laravel ubuntu supervisord


【解决方案1】:

你需要编辑 config/queue.php


'retry_after' => 1800, // This parameter is responsible for timeout

确保 retry_after 值大于作业运行所需的时间,队列文档中已经提到了这一点。

【讨论】:

    【解决方案2】:

    我的队列在 Fedora Linux Server 的主管下运行

    在我的 supervisord.conf 中

    [program:laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /var/app/current/artisan queue:work --sleep=3 --tries=3
    autostart=true
    autorestart=true
    stopasgroup=true
    killasgroup=true
    user=webapp
    numprocs=8
    redirect_stderr=true
    stdout_logfile=/var/app/current/worker.log
    stopwaitsecs=36000
    

    使用这个配置文件我有你显示的错误,但是当我删除睡眠并尝试这样的标志时

    [program:laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /var/app/current/artisan queue:work 
    autostart=true
    autorestart=true
    stopasgroup=true
    killasgroup=true
    user=webapp
    numprocs=8
    redirect_stderr=true
    stdout_logfile=/var/app/current/worker.log
    stopwaitsecs=36000
    

    错误消失了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 2021-01-13
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      相关资源
      最近更新 更多