Laravel - job виснет, timeout не помогает
Когда job пытается заменить уже существующий файл командой Storage::put, задача зависает навсегда, не помогает ни timeout, ни retry_after. После чего очередь встает и задачи перестают обрабатываться. Ожидаемое поведение в этом случае чтобы job просто заменил существующий файл или хотя бы выдал исключение по таймауту. В чем проблема и как избежать зависания? Процессом управляет supervisor:
[program:s-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/st/data/www/s/artisan queue:work --max-jobs=3 --sleep=3
autostart=true
autorestart=true
user=st
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/st/data/www/s/worker.log'
stopwaitsecs=1800
Тайм-аут установлен на 60 сек., и задание зависает надолго, мне помогают только команды "supervisor stop all" и "restart".
Источник: Stack Overflow на русском