2014-09-25 3 views
2

Я пытался записать некоторые данные из другой таблицы, когда рабочие задания не удались. Он отлично работает в таблице неудачных рабочих мест, но я не могу заставить Queue::failing(function($connection, $job, $data) работать каждый раз, когда работа завершилась неудачно. Я попытался поместить его в global.php, но не повезло.Laravel Queue Failed Jobs

Другой вопрос: что возвращает $job? Объект или только идентификатор задания?

+0

ok ... с очередями, в которых используется драйвер очереди, это Beanstalkd, пожалуйста, разместите часть своего кода, который вы пробовали – justrohu

+0

Я использую beanstalk. – Yuusha

ответ

0

Работает на global php. Его вызывает ошибку, просто изменилось следующее:

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

To:

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

Вы должны вызвать очереди: работа с --tries парам, напр:

$ 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, чтобы получить список неисправностей.