2014-09-25 214 views
2

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

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

+0

好的...与排队驱动程序,你使用的队列是Beanstalkd,请张贴你试过的一些代码 – justrohu 2014-09-25 04:54:46

+0

我正在使用豆茎。 – Yuusha 2014-09-25 05:32:01

回答

0

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

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

要:

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

你应该叫队列:工作与--tries PARAM,为前:

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

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

但记得配置你失败的表。

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即可获取失败列表。