Recherche…
Introduction
Cas d'utilisation
Par exemple, si vous envoyez un e-mail à un client après avoir démarré une tâche, il est préférable de rediriger immédiatement l'utilisateur vers la page suivante tout en mettant en file d'attente l'e-mail à envoyer en arrière-plan. Cela accélérera le temps de chargement de la page suivante, car l'envoi d'un courrier électronique peut parfois prendre plusieurs secondes ou plus.
Un autre exemple serait la mise à jour d'un système d'inventaire après qu'un client ait vérifié sa commande. Plutôt que d'attendre la fin des appels d'API, ce qui peut prendre plusieurs secondes, vous pouvez immédiatement rediriger l'utilisateur vers la page de réussite de l'extraction en mettant en attente les appels d'API en arrière-plan.
Configuration du pilote de file d'attente
Chacun des pilotes de file d'attente de Laravel est configuré à partir du fichier config/queue.php
. Un gestionnaire de files d'attente est le gestionnaire permettant de gérer l'exécution d'un travail en file d'attente, d'identifier si les travaux ont réussi ou échoué, et de réessayer le travail s'il est configuré pour le faire.
Laravel prend en charge les pilotes de file d'attente suivants:
sync
La synchronisation, ou synchrone, est le pilote de file d'attente par défaut qui exécute un travail en file d'attente dans votre processus existant. Lorsque ce pilote est activé, vous ne disposez d'aucune file d'attente lorsque le travail en file d'attente s'exécute immédiatement. Ceci est utile à des fins locales ou de test, mais n'est clairement pas recommandé pour la production car il supprime les avantages de la configuration de votre file d'attente.
database
Ce pilote stocke les travaux en file d'attente dans la base de données. Avant d'activer ce pilote, vous devrez créer des tables de base de données pour stocker vos travaux en attente et échoués:
php artisan queue:table
php artisan migrate
sqs
Ce pilote de file d'attente utilise le service Simple Queue d'Amazon pour gérer les travaux en file d'attente. Avant d'activer ce travail, vous devez installer le package de composition suivant: aws/aws-sdk-php ~3.0
Notez également que si vous prévoyez d'utiliser des délais pour les travaux en file d'attente, Amazon SQS ne prend en charge qu'un délai maximum de 15 minutes.
iron
Cette file d'attente pilotes utilisent Iron pour gérer les travaux en file d'attente.
redis
Ce pilote de file d'attente utilise une instance de Redis pour gérer les travaux en file d'attente. Avant d'utiliser ce pilote de file d'attente, vous devrez configurer une copie de Redis et installer la dépendance de composeur suivante: predis/predis ~1.0
beanstalkd
Ce pilote de file d'attente utilise une instance de Beanstalk pour gérer les travaux en file d'attente. Avant d'utiliser ce pilote de file d'attente, vous devrez configurer une copie de Beanstalk et installer la dépendance de composeur suivante: pda/pheanstalk ~3.0
null
Si vous spécifiez null comme pilote de file d'attente, les travaux en attente sont ignorés.