La verdad es que ésto es un tema que me tuvo 2 días pensando por que el comando queue:work ni el queue:listen me estaban procesando los trabajos (jobs) desde la tabla jobs dentro de un VPS de un cliente, la verdad nunca me habia pasado, en local todo funcionaba perfectamente, cosas a tener en cuenta que puede producir este problema:
En caso de utilizar queue driver database, confirmar dentro de nuestra base de datos la tabla jobs que realmente se guardo el job (quizas esto suene extraño, ¿de que me sirve revisar esa tabla si el job se ejecutó y se elimina automáticamente?, claramente tenemos la situación contraria no se procesa el job xD!).
Asegurarse de que al pasar el argumento –env=production a la hora de ejecutar queue:work o queue:listen dentro de nuestro archivo .env este declarado dicho entorno. Si estamos utilizando supervisor, verificar si tenemos configurado archivos de salida de errores (logs) y revisar dichos archivos en caso que supervisor almacene un posible error en estos logs.
Si verificamos todo esto y no nos aparece ningún error y al ejecutar el comando queue:work o queue:listen desde la terminal o si usamos supervisor, los logs están vacios, entonces te pasa lo mismo que a mí, lo más probable es que tengas la aplicación en modo mantenimiento y como fue mi caso con una excepción de IP.
Al estar la aplicación en modo mantenimiento ningún queue se va a procesar, sin importar que tengamos el modo de ambiente bien configurado o alguna excepcion de IP en el modo mantenimiento, ni queue:listen ni queue:work funcionarán xD!, asi que la solución es:
Desactivar el modo mantenimiento y finalmente los queue’s o jobs pendientes se procesarán si estamos usando supervisor sino es el caso ejecuta queue:listen o queue:work y verás que funciona
Comando para desactivar el modo mantenimiento:
php artisan down
Espero que a más de alguno le sirva
Page loaded in 38.46 ms