Conceptos y controladores de colas
Comprenda el procesamiento asíncrono y configure controladores de colas para bases de datos o Redis.
Conceptos y controladores de colas es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué son las colas?
Las colas permiten aplazar tareas lentas o que consumen muchos recursos (enviar correos electrónicos, cambiar el tamaño de imágenes, llamar a API externas) a trabajadores en segundo plano, de modo que las respuestas HTTP sigan siendo rápidas.
Arquitectura de las colas
El proceso principal (el servidor web) coloca los trabajos en una cola. Procesos de trabajadores independientes extraen y ejecutan los trabajos de forma asíncrona.
Drivers de cola disponibles
Laravel admite varios backends de cola:
database— trabajos almacenados en la base de datos (buena opción para empezar)redis— rápido y listo para producciónsqs— AWS Simple Queue Servicebeanstalkd— rápido y ligerosync— se ejecuta inmediatamente (desarrollo local)
Configurar el driver de cola
Establezca el driver en .env.
# .env
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379Configurar el driver database
Si utiliza el driver database, cree la tabla de trabajos.
$ php artisan queue:table
$ php artisan migrateIniciar un trabajador de cola
El proceso del trabajador extrae y ejecuta los trabajos de la cola.
$ php artisan queue:work
# Or specify connection and queue:
$ php artisan queue:work redis --queue=emails,defaultqueue:listen frente a queue:work
queue:work carga la aplicación una vez y procesa los trabajos en memoria; es más rápido, pero requiere reiniciar el trabajador después de cambiar el código. queue:listen vuelve a cargar la aplicación para cada trabajo; resulta más sencillo durante el desarrollo.
Trabajos fallidos
Cuando un trabajo falla después de agotar todos los reintentos, se almacena en la tabla failed_jobs. Consulte los trabajos y vuelva a intentarlos con Artisan.
$ php artisan queue:failed
$ php artisan queue:retry all
$ php artisan queue:flushPrioridades de las colas
Defina varias colas con nombre y asigne prioridades al iniciar el trabajador.
$ php artisan queue:work --queue=high,default,low
# Worker checks high first, then default, then lowPanel de Horizon
Para las colas de Redis, Laravel Horizon proporciona un atractivo panel en tiempo real que muestra el rendimiento, los trabajos fallidos y las estadísticas de los trabajadores.
Elegir un driver
Use sync localmente, database para proyectos pequeños y redis para producción a gran escala. Evite SQS salvo que ya utilice AWS y necesite una escala ilimitada.
Resumen
Las colas delegan el trabajo lento a trabajadores en segundo plano. Configure el driver en .env, cree trabajos con Artisan e inicie los trabajadores con queue:work. Supervise los trabajos fallidos en la tabla failed_jobs.
Comprobación rápida
¿Qué driver de cola ejecuta los trabajos inmediatamente en el mismo proceso?
Preguntas frecuentes
¿La lección «Conceptos y controladores de colas» es gratis?
Sí — el texto completo de «Conceptos y controladores de colas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Conceptos y controladores de colas»?
Comprenda el procesamiento asíncrono y configure controladores de colas para bases de datos o Redis. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Conceptos y controladores de colas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conceptos y controladores de colas
- Creación y envío de jobs
- Reintentos, retrasos y encadenamiento de jobs
- Monitorización de colas con Laravel Horizon