Неудачные задания очереди Laravel

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

Другой вопрос, что возвращает $job? Объект или просто id работы?


person Yuusha    schedule 25.09.2014    source источник
comment
хорошо ... с очередями, какой драйвер очереди вы используете, это Beanstalkd, пожалуйста, опубликуйте часть своего кода, который вы пробовали   -  person justrohu    schedule 25.09.2014
comment
Я использую бобовый стебель.   -  person Yuusha    schedule 25.09.2014


Ответы (2)


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

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

Без этих параметров ваша работа никогда не потерпит неудачу.

Но не забудьте настроить неудачную таблицу.

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

person Estevão Lucas    schedule 02.10.2015

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

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

To:

Queue::failing(function($connection, $job)
person Yuusha    schedule 26.09.2014