


Développement Laravel : Comment gérer les tâches asynchrones à l'aide de Laravel Queues et Supervisor ?
Développement Laravel : Comment utiliser Laravel Queues et Supervisor pour gérer les tâches asynchrones ?
Dans les applications Web modernes, les tâches asynchrones sont devenues partie intégrante des activités quotidiennes. Les tâches asynchrones peuvent améliorer le temps de réponse des applications, optimiser l'expérience utilisateur et améliorer l'évolutivité des applications. Laravel Queues est un outil puissant fourni par le framework Laravel pour gérer les tâches asynchrones et les files d'attente de messages. Cet article présentera le concept et l'utilisation de Laravel Queues, et le combinera avec Supervisor pour gérer les tâches asynchrones.
Que sont les files d'attente Laravel ?
Laravel Queues est une méthode de gestion des tâches asynchrones et des files d'attente de messages. Les files d'attente Laravel vous permettent de mettre des tâches fastidieuses dans une file d'attente sans affecter le temps de réponse de vos requêtes Web. Par exemple, l'envoi d'e-mails, le traitement de vidéos ou la génération de PDF sont autant d'opérations chronophages. L'utilisation d'une file d'attente pour les placer en arrière-plan peut rendre votre application plus efficace et plus réactive.
Laravel Queues prend en charge plusieurs technologies backend telles que Database, Redis, Beanstalkd et Amazon SQS via certains pilotes de file d'attente intégrés. Cela permet aux développeurs d'utiliser leur technologie de file d'attente préférée pour gérer les tâches asynchrones.
Utilisation des files d'attente Laravel
Ci-dessous, nous présenterons étape par étape comment utiliser les files d'attente Laravel pour gérer des tâches asynchrones.
Première étape : configurer le pilote de file d'attente
Il existe un fichier nommé queue.php dans le fichier de configuration de Laravel que vous pouvez utiliser pour configurer les files d'attente et les pilotes de file d'attente. Vous pouvez générer le fichier queue.php avec la commande suivante :
php artisan queue:table php artisan queue:failed-table php artisan migrate
Cela générera le fichier de migration et la table de file d'attente. Exécutez la commande migrate pour effectuer la migration.
Dans le fichier queue.php, vous pouvez choisir d'utiliser une variété de pilotes de file d'attente :
- Database Driver - will Les tâches sont stockées dans une base de données et servent de système de file d'attente d'entrée de gamme.
- Redis Driver - Utilise la prise en charge de file d'attente intégrée de Redis.
- Beanstalkd Driver - Utilise le service de file d'attente de messages Beanstalkd.
- Pilote Amazon SQS - Utilise Amazon Simple Queue Service (SQS).
Par exemple, si vous souhaitez utiliser le pilote de file d'attente Redis, veuillez configurer le fichier queue.php comme suit :
'default' => env('QUEUE_CONNECTION', 'redis'), 'connections' => [ 'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => env('REDIS_QUEUE', 'default'), 'retry_after' => 90, 'block_for' => null, ], ]
Étape 2 : Créer une file d'attente task class# 🎜🎜#
Ensuite, vous devez créer une classe de tâches de file d'attente pour gérer les tâches asynchrones. Cette classe doit être une simple classe PHP qui définit la logique de la tâche. Par exemple, le code suivant est une classe de tâches asynchrone pour l'envoi d'e-mails :class SendEmail implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $email; /** * Create a new job instance. * * @return void */ public function __construct($email) { $this->email = $email; } /** * Execute the job. * * @return void */ public function handle() { Mail::to($this->email)->send(new WelcomeEmail()); } }
use AppJobsSendEmail; use IlluminateSupportFacadesQueue; ... Queue::push(new SendEmail('example@test.com'));
SendEmail::dispatch('example@test.com');
Une fois que vous avez mis la tâche dans la file d'attente, la tâche sera envoyée dans la file d'attente, en attente d'exécution. Vous pouvez utiliser le code suivant pour exécuter la file d'attente :
php artisan queue:work
L'exécution de cette commande démarrera un écouteur et traitera les tâches dans la file d'attente.
Utilisez Supervisor pour gérer les tâches asynchrones
Étant donné que les tâches de file d'attente doivent s'exécuter en arrière-plan, un démon de processus doit être configuré sur le serveur pour garantir que les tâches peuvent continuer à s'exécuter exécuter. Supervisor est un démon de processus couramment utilisé qui garantit que les processus en arrière-plan ne se terminent pas anormalement et les redémarre en cas de besoin.
Première étape : Installer Supervisor
Dans le système Ubuntu, vous pouvez utiliser la commande suivante pour installer Supervisor :
sudo apt-get update sudo apt-get install supervisor
Deuxième étape : Créer un superviseur fichier de configuration
Créez un fichier de configuration dans le répertoire /etc/supervisor/conf.d, par exemple myqueue.conf :
nano /etc/supervisor/conf.d/myqueue.conf
Ajoutez le contenu suivant au fichier de configuration , assurez-vous de modifier le chemin, la commande et le nom d'utilisateur pour qu'ils correspondent à votre programme :
[program:myqueue] process_name=%(program_name)s_%(process_num)02d command=/usr/bin/php /path/to/artisan queue:work --sleep=3 --tries=3 --daemon autostart=true autorestart=true user=username numprocs=1 redirect_stderr=true stdout_logfile=/path/to/storage/logs/myqueue.log
Troisième étape : Recharger le superviseur
Après avoir modifié le fichier de configuration du superviseur, votre superviseur a besoin être averti pour recharger le fichier de configuration. Utilisez la commande suivante pour recharger le superviseur :
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start all
Étape 4 : afficher le journal du superviseur
Vous pouvez afficher les informations de sortie et d'erreur de la tâche asynchrone dans le fichier journal du superviseur . Par exemple, vous pouvez afficher le journal du superviseur en affichant le chemin et le nom du fichier journal spécifiés dans le fichier de configuration : Tâches asynchrones, utilisez les files d'attente Laravel pour mettre facilement les tâches fastidieuses dans une file d'attente et rendre votre application plus efficace et plus réactive. Utilisez Supervisor pour garantir que les tâches en arrière-plan peuvent continuer à s'exécuter et être automatiquement redémarrées en cas de besoin. J'espère que cet article sera utile à votre développement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

À mesure que les applications deviennent plus complexes, le traitement et la gestion de grandes quantités de données et de processus constituent un défi. Afin de gérer cette situation, Laravel met à disposition des utilisateurs un outil très puissant, la Laravel Queue (Queue). Il permet aux développeurs d'exécuter des tâches telles que l'envoi d'e-mails, la génération de PDF, la gestion du recadrage d'images, etc. en arrière-plan sans aucun impact sur l'interface utilisateur. Dans cet article, nous verrons comment utiliser les files d'attente Laravel. Qu'est-ce que la file d'attente LaravelQueue

Comment utiliser les files d'attente de messages pour le traitement asynchrone des tâches dans FastAPI Introduction : Dans les applications Web, il est souvent constaté que des tâches chronophages doivent être traitées, telles que l'envoi d'e-mails, la génération de rapports, etc. Si ces tâches sont placées dans un processus requête-réponse synchrone, les utilisateurs devront attendre longtemps, ce qui réduira l'expérience utilisateur et la vitesse de réponse du serveur. Afin de résoudre ce problème, nous pouvons utiliser la file d'attente de messages pour le traitement des tâches asynchrones. Cet article explique comment utiliser les files d'attente de messages pour traiter des tâches asynchrones dans le framework FastAPI.

"Suggestions de développement : comment utiliser le framework ThinkPHP pour implémenter des tâches asynchrones" Avec le développement rapide de la technologie Internet, les applications Web ont des exigences de plus en plus élevées pour gérer un grand nombre de requêtes simultanées et une logique métier complexe. Afin d'améliorer les performances du système et l'expérience utilisateur, les développeurs envisagent souvent d'utiliser des tâches asynchrones pour effectuer certaines opérations chronophages, telles que l'envoi d'e-mails, le traitement des téléchargements de fichiers, la génération de rapports, etc. Dans le domaine de PHP, le framework ThinkPHP, en tant que framework de développement populaire, offre des moyens pratiques d'implémenter des tâches asynchrones.

À mesure que les applications Web continuent de se développer, nous devons gérer un grand nombre de tâches pour maintenir la stabilité et la disponibilité de l'application. Utiliser un système de file d’attente est une solution. ThinkPHP6 fournit un système de file d'attente intégré pour gérer les tâches. Cependant, gérer un grand nombre de tâches nécessite une meilleure gestion des files d'attente, ce qui peut être réalisé à l'aide de Supervisor. Cet article explique comment utiliser Supervisor pour gérer les files d'attente ThinkPHP6. Avant cela, nous devons comprendre quelques concepts de base : le système de file d'attente est

Avec le développement continu du langage PHP, de plus en plus de fonctions et de bibliothèques sont introduites dans la boîte à outils du développeur. L'une des fonctions importantes est la gestion des processus. Dans la version PHP8.0, Supervisor est une bibliothèque de gestion de processus très puissante, qui peut nous aider à démarrer, arrêter, surveiller et redémarrer facilement des processus, et à maintenir le fonctionnement stable du processus. Qu'est-ce qu'un superviseur ? Supervisor est un outil de gestion de processus écrit en Python qui vous permet de démarrer, d'arrêter et de surveiller facilement

Dans le développement web, certaines tâches sont longues à réaliser, comme le traitement des données, le téléchargement de fichiers, l'envoi d'e-mails, etc. Si ces opérations sont effectuées au premier plan, cela entraînera une mauvaise expérience utilisateur et empêchera même la page de répondre pendant une longue période. Par conséquent, l'utilisation de tâches asynchrones peut placer ces tâches en arrière-plan, améliorer la capacité de concurrence du système et également rendre l'expérience utilisateur et l'interaction au premier plan plus fluides. En tant que langage de script côté serveur populaire, PHP prend également en charge la mise en œuvre de tâches asynchrones. Cet article expliquera comment utiliser l'hétérogénéité en PHP

Développement Laravel : Comment utiliser LaravelJobQueues pour implémenter des tâches asynchrones ? Dans le développement d’applications Web, nous devons souvent effectuer des tâches chronophages et à réponse non immédiate. Ces tâches occuperont les ressources du serveur, bloqueront même les demandes des autres utilisateurs et affecteront grandement l'expérience utilisateur. LaravelJobQueues fournit une solution capable de convertir ces tâches chronophages en tâches asynchrones et de les traiter à l'aide d'une file d'attente. Cet article présentera Larave

Ces dernières années, avec le développement continu des services Internet, diverses tâches asynchrones sont devenues une partie importante du développement Web, telles que les files d'attente de messages, la surveillance des événements, les tâches planifiées, etc. L'utilisation de la technologie des tâches asynchrones peut considérablement améliorer les performances du site Web, réduire la charge sur le serveur, contribuer également à réduire le temps d'attente de l'utilisateur et à améliorer l'expérience utilisateur. Cet article explique comment utiliser ThinkPHP6 pour implémenter des tâches asynchrones. 1. Présentation des tâches asynchrones Les tâches asynchrones signifient que dans un processus, certaines tâches ne sont pas exécutées séquentiellement, mais sont transmises à une autre unité de traitement.
