2014-09-25 5 views
2

작업이 실패 할 때 다른 테이블의 일부 데이터를 기록하려고했습니다. 실패한 작업 테이블에서는 훌륭하게 작동하지만 작업이 실패 할 때마다 Queue::failing(function($connection, $job, $data)이 작동하지 않습니다. 나는 그것을 global.php에 넣으려고했다. 그러나 행운이 없다.Laravel Queue 실패한 작업

또 다른 질문은 $job이 무엇을 반환합니까? 개체 또는 작업 ID가 있습니까?

+0

ok ... 어떤 대기열 드라이버를 사용하고 있습니까? Beanstalkd, 시도한 코드 중 일부를 게시하십시오. – justrohu

+0

beanstalk를 사용하고 있습니다. – Yuusha

답변

0

작업 코드 global php. 그 오류의 원인이 바로 다음 변경 :

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

사람 : 예를 들어, --tries PARAM와 작업 :

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

당신은 큐를 호출해야

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

을이 PARAMS없이 , 당신의 일은 결코 실패하지 않을 것입니다.

하지만 실패한 테이블을 설정하는 것을 기억하십시오.

1) 마이그레이션 파일을 만듭니다

$ php artisan queue:failed-table 

2) 실행이 queue.php에서

$ php artisan migrate 

3) 당신을 config (설정) 할 필요가 테이블을 만들 마이그레이션 테이블을 '실패'. 예는 : 작업이 실패됩니다 때

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

, 그것은 failed_jobs 테이블에 삽입합니다.

php artisan queue:failed을 실행하여 실패한 목록을 가져 오면됩니다.