Laravel队列失败的工作

Yuu*_*sha 6 php queue beanstalkd supervisord laravel

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

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

Est*_*cas 10

您应该调用队列:使用--tries param工作,例如:

$ php artisan queue:work sqs --tries=1
Run Code Online (Sandbox Code Playgroud)

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

但请记住配置失败的表.

1)创建迁移文件:

$ php artisan queue:failed-table
Run Code Online (Sandbox Code Playgroud)

2)运行migrate以创建表

$ php artisan migrate
Run Code Online (Sandbox Code Playgroud)

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

'failed' => array(
    'database' => 'pgsql', 'table' => 'failed_jobs',
),
Run Code Online (Sandbox Code Playgroud)

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

只是运行php artisan queue:failed以获取失败的列表.


Yuu*_*sha 2

从事于global php。它导致错误,只是更改如下:

Queue::failing(function($connection, $job, $data)
Run Code Online (Sandbox Code Playgroud)

到:

Queue::failing(function($connection, $job)
Run Code Online (Sandbox Code Playgroud)