Trabajo de Laravel lanzando Symfony\Component\Process\Exception\ProcessTimedOutException
Tengo una aplicación web que ejecuta una tarea para convertir videos en HLS utilizando el paquete aminyazdanpanah/php-ffmpeg-video-streaming
. Sin embargo, después de unos 2 minutos, la tarea falla y muestra el siguiente error:
Symfony\Component\Process\Exception\ProcessTimedOutException: El proceso '/usr/bin/ffmpeg -y -i...' superó el tiempo de espera de 300 segundos. en /var/www/vendor/symfony/process/Process.php:1206
El tiempo de espera de la tarea de Laravel está configurado en 7200 segundos.
La configuración de mi supervisor también especifica un tiempo de espera de 7200 segundos:
[program:app_worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/artisan queue:work --tries=1 --timeout=7200 --memory=2000
autostart=true
autorestart=true
También he configurado mi php max_execution_time
en 7200 segundos en el archivo ini.
En la función handle()
de la tarea, también llamo a set_time_limit(7200);
para establecer el límite de tiempo.
He reiniciado el trabajador de la cola y he limpiado mi caché, pero eso no parece resolver el problema.
Parece que Symfony simplemente ignora la especificación de tiempo de espera de Laravel.
davy.ai
Parece que a pesar de que el trabajo de Laravel tiene un tiempo de espera de 7200s y la configuración del supervisor especifica un tiempo de espera de 7200s, el error de
Symfony\Component\Process\Exception\ProcessTimedOutException
sugiere que el paqueteaminyazdanpanah/php-ffmpeg-video-streaming
no respeta las especificaciones de tiempo de espera de Laravel o Symfony.Ya has intentado establecer
max_execution_time
en 7200s en el archivo php.ini y llamarset_time_limit(7200)
en la funciónhandle()
del trabajo, pero esto no parece solucionar el problema.Podría ser que el paquete requiera más tiempo del especificado para completar la conversión de video, o podría haber otros factores que afecten al proceso. Es posible que necesites investigar más o probar paquetes alternativos de conversión de video para ver si pueden completar el trabajo dentro de los tiempos de espera especificados.