не из за ошибки в коде, а к примеру из за превышенного таймаута, или чего то подобного ( не связанного с ошибками в коде ), сработает ли метод failed в классе джобы?
да failed сработает при последней попытке повторного запуска, только там будет ошибка из серии, что превышено количество попыток запуска, что-то в этом духе у тебя horizon прививает job-ы по timeout, потому что я заметил если queue:work запустить через supervisor, то timeout не отрабатывает
То есть, если я жахну к примеру php artisan queue:work —tries=3 - после 3 попытке, он запустит failed, окей, спасибо
при таком запуске что-то не так с timeout, у нас часть очередей работает через supervisor, так вот эта часть по timeout не падает от слова совсем (причем специально никто ничего не делал, так получилось случайно), а вот там где присматривает horizon, то он "аккуратненько" их прибивает, когда timeout истек
Может в конфигах копаться? Окей, пошёл тестить)
чтоб timeout отработал при использовании php artisan queue:work, это или ограничение время выполнения в php (хотя в текущих версия php оно считается не правильно в linux, т.е. оно не учитывает время затраченное php на обращение к базе данных, к стороннему сервису по http и т.д.) или кто-то со стороны должен присматривать, например horizon (но это работает только под linux)
Хз, пока непонятно по какой логике, ибо работает через раз, но иногда срабатывает [2023-09-14 11:35:39] laravel.DEBUG: App\Jobs\SendIssueSearchRequest has been attempted too many times or run too long. The job may have previously timed out.
Обсуждают сегодня