【问题标题】:Laravel Queue Failed JobsLaravel 队列失败的作业
【发布时间】:2014-11-19 17:51:44
【问题描述】:

当作业失败时,我试图从其他表中记录一些数据。它在失败的工作表中效果很好,但每次工作失败时我都无法让Queue::failing(function($connection, $job, $data) 工作。我确实尝试将其放入global.php,但没有运气。

另一个问题是$job 返回什么?一个对象还是只是作业 ID?

【问题讨论】:

  • ok ...with queues 你正在使用哪个队列驱动程序是 Beanstalkd,请发布一些你尝试过的代码
  • 我正在使用 beanstalk。

标签: php laravel queue supervisord beanstalkd


【解决方案1】:

您应该调用 queue:work 与 --tries 参数,例如:

$ php artisan queue:work sqs --tries=1

没有这个参数,你的工作永远不会失败。

但是记得配置你失败的表。

1) 创建迁移文件:

$ php artisan queue:failed-table

2) 运行迁移创建表

$ php artisan migrate

3) 在 queue.php 中,您需要配置“失败”表。例如:

'failed' => array(
    'database' => 'pgsql', 'table' => 'failed_jobs',
),

现在,当作业失败时,它会将其插入到 failed_jobs 表中。

只需运行php artisan queue:failed 即可获取失败列表。

【讨论】:

    【解决方案2】:

    处理global php。它导致错误,只是更改了以下内容:

    Queue::failing(function($connection, $job, $data)
    

    收件人:

    Queue::failing(function($connection, $job)
    

    【讨论】:

      猜你喜欢
      • 2018-08-16
      • 2019-07-10
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多