Laravel队列失败的工作

时间:2014-09-25 04:17:23

标签: php laravel queue supervisor beanstalkd

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

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

2 个答案:

答案 0 :(得分:9)

你应该调用队列:使用--tries param,例如:

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

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

但请记住配置失败的表格。

1)创建迁移文件:

$ php artisan queue:failed-table

2)运行migrate以创建表

$ php artisan migrate

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

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

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

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

答案 1 :(得分:1)

global php上工作。它导致错误,只是改变了以下内容:

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

要:

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