2014-09-25 226 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即可獲取失敗列表。