Я пытался записать некоторые данные из другой таблицы, когда задания не удается. Это прекрасно работает в таблице неудачных работ, но я не могу получить Queue::failing(function($connection, $job, $data)
работать каждый раз, когда работа не удалась. Я пытался положить его в global.php
но не повезло.
Другой вопрос, что делает $job
вернуть? Объект или просто идентификатор работы?
Вы должны вызвать очередь: работа с параметром —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
чтобы получить список неудачных.
Работа над global php
, Это вызвало ошибку, просто изменилось следующее:
Queue::failing(function($connection, $job, $data)
Для того, чтобы:
Queue::failing(function($connection, $job)