Buscar..


Introducción

Las colas permiten que su aplicación reserve partes del trabajo que requieren mucho tiempo para ser manejadas por un proceso en segundo plano.

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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow