recherche
Maisoncadre phpLaravelParlons de la façon de consommer les tâches de file d'attente dans Laravel

Dans Laravel, les files d'attente sont un outil important pour le traitement asynchrone. Lors du traitement de tâches asynchrones, les files d'attente nous permettent d'utiliser les ressources du serveur de manière plus flexible et d'améliorer l'évolutivité et les performances des applications. Lorsque nous plaçons une tâche fastidieuse dans la file d'attente, l'application continuera à s'exécuter de manière asynchrone et le travail en arrière-plan sera traité par la file d'attente. Lorsqu'il y a des tâches dans la file d'attente qui doivent être traitées, nous devons consommer les tâches de la file d'attente. Cet article vous expliquera comment consommer la file d'attente Laravel.

1. Configuration de la file d'attente

Avant d'utiliser la fonction de file d'attente de Laravel, nous devons configurer la file d'attente dans le fichier de configuration .env : .env配置文件中进行如下参数配置:

QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

我们可以根据自己的需求进行配置,如果不需要密码可以将REDIS_PASSWORD设置为null。在本文中,我们使用Redis作为Laravel队列的驱动器。

二、创建队列任务

在Laravel中,我们可以使用如下命令创建一个队列任务:

php artisan make:job MyJob

创建完毕后,在app/Jobs目录下将会生成一个名为MyJob的PHP文件,只需要在其中增加我们想要完成的任务代码即可。

三、推入队列任务

当我们完成队列任务的编写后,我们需要将其推入队列中。Laravel提供了多种方法将任务推入队列,以下是两种常用方法:

  1. 使用queue()方法
$this->dispatch(new MyJob($data));
  1. 使用dispatch()方法
MyJob::dispatch($data);

以上两种方法的参数都是MyJob类的实例,$data是传入任务的数据,可以是一个数组或对象。

四、消费队列任务

当我们推入了任务后,需要消费队列中的任务。Laravel提供了多种方式让我们去消费队列任务,比如:

  1. 使用php artisan queue:work命令

该命令可以在终端窗口中开启队列工作进程,用于监控队列中是否有任务需要处理。

php artisan queue:work --queue=queue-name --tries=3

其中,queue-name是队列名称,tries是错误尝试次数,即当一个任务失败后,会让处理任务的进程进行多次重试。同时,在开启队列工作的进程中,我们也可以指定队列中的任务执行方式。

  1. 使用php artisan queue:listen命令

该命令也是用于监控队列任务的,与php artisan queue:work命令的区别是,它可以同时监控多个队列名称,并对队列任务进行分组。

  1. 使用supervisor守护进程

使用supervisor可以让我们在后台持续监控队列任务,防止队列工作进程意外终止。

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile=/path/to/worker.log

以上是使用supervisor的一段示例代码,其中numprocs=8rrreee

Nous pouvons la configurer selon la nôtre. La configuration est requise Si un mot de passe n'est pas requis, REDIS_PASSWORD peut être défini sur null. Dans cet article, nous utilisons Redis comme pilote pour les files d'attente Laravel.

2. Créer une tâche de file d'attente

Dans Laravel, nous pouvons utiliser la commande suivante pour créer une tâche de file d'attente : 🎜rrreee🎜Après la création, un fichier nommé app/Jobs répertoire.code>MyJob, il suffit d'ajouter le code de la tâche que nous voulons accomplir. 🎜🎜3. Pousser la tâche de file d'attente 🎜🎜Après avoir fini d'écrire la tâche de file d'attente, nous devons la placer dans la file d'attente. Laravel fournit une variété de méthodes pour placer les tâches dans la file d'attente. Voici deux méthodes courantes : 🎜
  1. Utilisez la méthode queue()
rrreee<. ol start="2">
  • Utilisez la méthode dispatch()
  • rrreee🎜Les paramètres des deux méthodes ci-dessus sont des instances de MyJob code> classe. <code>$data sont les données transmises à la tâche, qui peuvent être un tableau ou un objet. 🎜🎜4. Consommer les tâches de la file d'attente🎜🎜Après avoir poussé la tâche, nous devons consommer les tâches dans la file d'attente. Laravel fournit diverses façons d'utiliser les tâches de file d'attente, telles que : 🎜
    1. Utilisez la commande php artisan queue:work
    🎜Cette commande peut être utilisé dans le terminal Ouvrez le processus de travail de la file d'attente dans la fenêtre pour surveiller s'il y a des tâches dans la file d'attente qui doivent être traitées. 🎜rrreee🎜 Parmi eux, queue-name est le nom de la file d'attente, tries est le nombre de tentatives d'erreur, c'est-à-dire que lorsqu'une tâche échoue, le processus qui gère la tâche sera réessayé plusieurs fois. Dans le même temps, lors du démarrage du travail en file d'attente, nous pouvons également spécifier la méthode d'exécution des tâches dans la file d'attente. 🎜
    1. Utilisez la commande php artisan queue:listen
    🎜Cette commande est également utilisée pour surveiller les tâches de file d'attente, et est la même as php La différence entre la commande artisan queue:work est qu'elle peut surveiller plusieurs noms de file d'attente en même temps et regrouper les tâches de file d'attente. 🎜
    1. Utiliser le démon supervisor
    🎜L'utilisation de supervisor nous permet de surveiller en permanence les tâches de file d'attente en arrière-plan , pour empêcher le processus de traitement de file d'attente de se terminer de manière inattendue. 🎜rrreee🎜Ce qui précède est un exemple de code utilisant supervisor, où numprocs=8 spécifie le nombre de processus de travail de file d'attente à ouvrir. 🎜🎜5. Résumé🎜🎜Ce qui précède explique comment consommer la file d'attente Laravel En fonction de vos propres besoins et de votre situation réelle, vous pouvez choisir d'utiliser les méthodes mentionnées ci-dessus pour consommer et traiter les tâches de file d'attente. le savez très bien, vous pouvez vous référer à la documentation officielle pour apprendre. 🎜

    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!

    Déclaration
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Laravel en action: applications et exemples du monde réelLaravel en action: applications et exemples du monde réelApr 16, 2025 am 12:02 AM

    LaravelCanBeefectively utiliseInreal-worldapplicationsforbuildingscalablewebsolutions.1) itsImpplivesCrudoperations InsistfulapisusingEloventorm.2) Laravel'secosystem, y compristoolslikenova, amélioreDevelopment.3)

    Fonction principale de Laravel: développement backendFonction principale de Laravel: développement backendApr 15, 2025 am 12:14 AM

    Les fonctions principales de Laravel dans le développement back-end incluent le système de routage, l'éloquente, la fonction de migration, le système de cache et le système de file d'attente. 1. Le système de routage simplifie la cartographie de l'URL et améliore l'organisation et la maintenance du code. 2.Lesormorm fournit des opérations de données orientées objet pour améliorer l'efficacité du développement. 3. La fonction de migration gère la structure de la base de données via le contrôle de la version pour assurer la cohérence. 4. Le système de cache réduit les requêtes de la base de données et améliore la vitesse de réponse. 5. Le système de file d'attente traite efficacement les données à grande échelle, évite de bloquer les demandes des utilisateurs et d'améliorer les performances globales.

    Capacités backend de Laravel: bases de données, logique et plus encoreCapacités backend de Laravel: bases de données, logique et plus encoreApr 14, 2025 am 12:04 AM

    Laravel fonctionne fortement dans le développement back-end, simplifiant les opérations de la base de données via Elognentorm, les contrôleurs et les cours de service gèrent la logique métier, et offrant des files d'attente, des événements et d'autres fonctions. 1) Eloquentorm cartocie des tables de base de données via le modèle pour simplifier la requête. 2) La logique métier est traitée dans les contrôleurs et les classes de services pour améliorer la modularité et la maintenabilité. 3) D'autres fonctions telles que les systèmes de file d'attente aident à gérer les besoins complexes.

    Polyvylity de Laravel: des sites simples aux systèmes complexesPolyvylity de Laravel: des sites simples aux systèmes complexesApr 13, 2025 am 12:13 AM

    Le projet de développement de Laravel a été choisi en raison de sa flexibilité et de sa puissance pour répondre aux besoins de différentes tailles et complexités. Laravel fournit un système de routage, Eloquentorm, une ligne de commande artisanale et d'autres fonctions, soutenant le développement de blogs simples aux systèmes complexes au niveau de l'entreprise.

    Laravel (PHP) contre Python: environnements de développement et écosystèmesLaravel (PHP) contre Python: environnements de développement et écosystèmesApr 12, 2025 am 12:10 AM

    La comparaison entre Laravel et Python dans l'environnement de développement et l'écosystème est la suivante: 1. L'environnement de développement de Laravel est simple, seul PHP et compositeur sont nécessaires. Il fournit une riche gamme de packages d'extension tels que Laravelforge, mais la maintenance des forfaits d'extension peut ne pas être opportun. 2. L'environnement de développement de Python est également simple, seuls Python et PIP sont nécessaires. L'écosystème est énorme et couvre plusieurs champs, mais la gestion de la version et de la dépendance peut être complexe.

    Laravel et le backend: alimentation logique d'application WebLaravel et le backend: alimentation logique d'application WebApr 11, 2025 am 11:29 AM

    Comment Laravel joue-t-il un rôle dans la logique backend? Il simplifie et améliore le développement backend par le biais de systèmes de routage, d'éloquente, d'authentification et d'autorisation, d'événements et d'auditeurs et d'optimisation des performances. 1. Le système de routage permet la définition de la structure d'URL et demande la logique de traitement. 2.Lao-éloquente simplifie l'interaction de la base de données. 3. Le système d'authentification et d'autorisation est pratique pour la gestion des utilisateurs. 4. L'événement et l'écoute implémentent la structure de code couplée de manière lâche. 5. L'optimisation des performances améliore l'efficacité de l'application par la mise en cache et la file d'attente.

    Pourquoi Laravel est-il si populaire?Pourquoi Laravel est-il si populaire?Apr 02, 2025 pm 02:16 PM

    La popularité de Laravel comprend son processus de développement simplifié, offrant un environnement de développement agréable et des caractéristiques riches. 1) Il absorbe la philosophie de conception des rubyonrails, combinant la flexibilité de PHP. 2) Fournir des outils tels que l'éloquente, le moteur de modèle de lame, etc. pour améliorer l'efficacité du développement. 3) Son mécanisme d'architecture MVC et d'injection de dépendance rend le code plus modulaire et testable. 4) fournit des outils de débogage puissants et des méthodes d'optimisation des performances telles que les systèmes de mise en cache et les meilleures pratiques.

    Quel est le meilleur, Django ou Laravel?Quel est le meilleur, Django ou Laravel?Mar 28, 2025 am 10:41 AM

    Django et Laravel sont tous deux des frameworks à pile. Django convient aux développeurs Python et à la logique métier complexe, tandis que Laravel convient aux développeurs PHP et à la syntaxe élégante. 1.Django est basé sur Python et suit la philosophie "Battery-Complete", adaptée au développement rapide et à une grande concurrence. 2.Laravel est basé sur PHP, mettant l'accent sur l'expérience du développeur et convient aux projets de petite et moyenne taille.

    See all articles

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Commandes de chat et comment les utiliser
    4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    mPDF

    mPDF

    mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

    Télécharger la version Mac de l'éditeur Atom

    Télécharger la version Mac de l'éditeur Atom

    L'éditeur open source le plus populaire

    Version crackée d'EditPlus en chinois

    Version crackée d'EditPlus en chinois

    Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

    PhpStorm version Mac

    PhpStorm version Mac

    Le dernier (2018.2.1) outil de développement intégré PHP professionnel

    Version Mac de WebStorm

    Version Mac de WebStorm

    Outils de développement JavaScript utiles