当作业失败时,我试图从其他表中记录一些数据。它在失败的作业表中运行良好,但每次作业失败时我都无法使Queue::failing(function($connection, $job, $data)
工作。我确实试过把它放在global.php
但没有运气。
另一个问题是$job
返回了什么?一个对象或只是作业ID?
答案 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)