Buscar..
Introducción
Casos de uso
Por ejemplo, si está enviando un correo electrónico a un cliente después de comenzar una tarea, es mejor redirigir inmediatamente al usuario a la página siguiente mientras se pone en cola el correo electrónico que se enviará en segundo plano. Esto acelerará el tiempo de carga para la página siguiente, ya que enviar un correo electrónico a veces puede llevar varios segundos o más.
Otro ejemplo sería actualizar un sistema de inventario después de que un cliente verifique con su pedido. En lugar de esperar a que se completen las llamadas a la API, lo que puede demorar varios segundos, puede redirigir inmediatamente al usuario a la página de éxito de pago mientras se ponen en cola las llamadas a la API para que ocurran en segundo plano.
Configuración del controlador de cola
Cada uno de los controladores de cola de Laravel se configura desde el archivo config/queue.php
. Un controlador de cola es el controlador para administrar cómo ejecutar un trabajo en cola, identificar si los trabajos tuvieron éxito o no, e intentar el trabajo nuevamente si está configurado para hacerlo.
Fuera de la caja, Laravel admite los siguientes controladores de cola:
sync
Sincronización, o síncrono, es el controlador de cola predeterminado que ejecuta un trabajo en cola dentro de su proceso existente. Con este controlador habilitado, efectivamente no tiene cola ya que el trabajo en cola se ejecuta inmediatamente. Esto es útil para propósitos locales o de prueba, pero claramente no se recomienda para producción ya que elimina el beneficio de rendimiento de la configuración de su cola.
database
Este controlador almacena trabajos en cola en la base de datos. Antes de habilitar este controlador, deberá crear tablas de base de datos para almacenar sus trabajos en cola y fallidos:
php artisan queue:table
php artisan migrate
sqs
Este controlador de cola utiliza el Servicio de cola simple de Amazon para administrar trabajos en cola. Antes de habilitar este trabajo, debe instalar el siguiente paquete compositor: aws/aws-sdk-php ~3.0
También tenga en cuenta que si planea usar demoras para trabajos en cola, Amazon SQS solo admite una demora máxima de 15 minutos.
iron
Estos controladores de cola utilizan Iron para administrar trabajos en cola.
redis
Este controlador de cola utiliza una instancia de Redis para administrar trabajos en cola. Antes de usar este controlador de cola, deberá configurar una copia de Redis e instalar la siguiente dependencia del predis/predis ~1.0
: predis/predis ~1.0
beanstalkd
Este controlador de cola utiliza una instancia de Beanstalk para administrar trabajos en cola. Antes de usar este controlador de cola, deberá configurar una copia de Beanstalk e instalar la siguiente dependencia del compositor: pda/pheanstalk ~3.0
null
Especificar nulo como su controlador de cola descartará cualquier trabajo en cola.