Maison cadre php PensezPHP Comment utiliser Supervisor pour gérer la file d'attente ThinkPHP6 ?

Comment utiliser Supervisor pour gérer la file d'attente ThinkPHP6 ?

Jun 12, 2023 am 08:51 AM
thinkphp 队列 supervisor

À 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 :

  1. queue system
    Le système de file d'attente est un moyen de traiter les tâches de manière asynchrone, en ajoutant des tâches à la file d'attente au lieu de les traiter directement. Une fois qu'une tâche est ajoutée à la file d'attente, elle peut être attribuée à différents travailleurs pour éviter un blocage à long terme de l'application Web. Le système de file d'attente peut également effectuer certaines opérations complexes de tâches.
  2. Tâche
    Dans un système de file d'attente, une tâche est le travail qui doit être effectué. Vous pouvez regrouper le code qui doit être exécuté de manière asynchrone dans une tâche, puis ajouter la tâche à la file d'attente pour attendre le traitement ultérieur. Nous pouvons utiliser le composant de file d'attente dans le framework PHP ou une bibliothèque tierce pour gérer des tâches, comme le composant de file d'attente de Laravel ou Beanstalkd, etc.
  3. Supervisor
    Supervisor est un système de contrôle de processus qui peut surveiller et contrôler un ou plusieurs processus, y compris les travailleurs de file d'attente. Le superviseur peut rendre le système de file d'attente plus stable et durable. L'utilisation de Supervisor peut redémarrer automatiquement les travailleurs lorsque les tâches échouent et peut également garantir que les tâches en file d'attente peuvent continuer à être traitées après le redémarrage de l'application Web.

Après avoir compris ces concepts de base, nous présenterons comment utiliser Supervisor pour gérer les files d'attente ThinkPHP6.

Première étape : Installer Supervisor

Pour utiliser Supervisor pour la gestion des files d'attente, nous devons d'abord installer Supervisor. Sur le système Ubuntu, vous pouvez utiliser la commande suivante pour installer :

sudo apt-get install supervisor
Copier après la connexion

Sur le système CentOS, vous pouvez utiliser la commande suivante pour installer :

sudo yum install supervisor
Copier après la connexion

Une fois l'installation terminée, vous pouvez utiliser la commande suivante Start Supervisor :

sudo systemctl start supervisor
Copier après la connexion

En même temps, nous devons également configurer le fichier /etc/supervisor/conf.d/中创建一个新的配置文件来管理队列工作者。我们可以在该目录中创建一个任意名称的文件,如laravel-worker.conf. Ensuite, nous verrons comment modifier ce fichier.

Étape 2 : Modifiez le fichier de configuration du superviseur

Modifiez le fichier de configuration du superviseur et ajoutez des travailleurs à la liste de surveillance des superviseurs. Nous pouvons utiliser la commande suivante pour modifier le fichier de configuration que nous venons de créer :

sudo nano /etc/supervisor/conf.d/laravel-worker.conf
Copier après la connexion

Ajoutez la configuration suivante au fichier :

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
directory=/var/www/laravel #修改为你的项目目录
command=php /var/www/laravel/artisan queue:work
autostart=true
autorestart=true
user=www-data #修改为你的Web服务器运行用户
numprocs=8 #工作者数量,此处建议设置为CPU核心数2-4倍
redirect_stderr=true
stdout_logfile=/var/www/laravel/storage/logs/worker.log #修改为你的日志文件位置
Copier après la connexion

Après avoir ajouté la configuration ci-dessus au fichier, nous pouvons utiliser la commande suivante pour recharger le fichier de configuration du superviseur :

sudo supervisorctl reread
sudo supervisorctl update
Copier après la connexion

De cette façon, le superviseur peut démarrer nos travailleurs de file d'attente et les gérer. Nous pouvons utiliser la commande suivante pour afficher tous les processus démarrés par Supervisor :

sudo supervisorctl status
Copier après la connexion

Étape 3 : Tester la tâche de file d'attente

Maintenant, nous avons démarré avec succès le gestionnaire de file d'attente à l'aide de Supervisor. Ensuite, nous devons tester la tâche de file d'attente. Tout d’abord, assurez-vous que votre file d’attente est configurée dans votre application.

Ajoutez une tâche de test quelque part et laissez la file d'attente commencer à fonctionner. Par exemple, créez une tâche d'envoi d'e-mails :

<?php

namespace appqueue;

use thinkqueueJob;

class SendEmail
{
    public $user;

    public function __construct($user)
    {
        $this->user = $user;
    }

    public function fire(Job $job, $data)
    {
        //发送Email的代码
        if (Math.random() < 0.5) {
            // 处理失败
            $job->release(5);// 5秒后重试
        } else {
            // 成功处理
            $job->delete();
        }
    }
}
Copier après la connexion

Ajoutez une méthode dans le contrôleur et ajoutez la tâche :

<?php

namespace appcontroller;

use thinkController;
use thinkqueueQueue;

class Email extends Controller
{
    public function index()
    {
        $user = ['email' => 'test@test.com', 'name' => 'test'];
        $job = new ppqueueSendEmail($user);
        app('queue')->push($job);
    }
}
Copier après la connexion

De cette façon, nous pouvons utiliser avec succès Supervisor pour gérer la file d'attente ThinkPHP6. Si vous souhaitez en savoir plus sur le système de files d'attente, vous pouvez lire la documentation officielle. J'espère que cet article pourra vous aider à exécuter avec succès votre application Web !

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 de ce site Web
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

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment exécuter le projet thinkphp Comment exécuter le projet thinkphp Apr 09, 2024 pm 05:33 PM

Pour exécuter le projet ThinkPHP, vous devez : installer Composer ; utiliser Composer pour créer le projet ; entrer dans le répertoire du projet et exécuter php bin/console serve ; visiter http://localhost:8000 pour afficher la page d'accueil.

Il existe plusieurs versions de thinkphp Il existe plusieurs versions de thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP dispose de plusieurs versions conçues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Lequel est le meilleur, Laravel ou thinkphp ? Lequel est le meilleur, Laravel ou thinkphp ? Apr 09, 2024 pm 03:18 PM

Comparaison des performances des frameworks Laravel et ThinkPHP : ThinkPHP fonctionne généralement mieux que Laravel, en se concentrant sur l'optimisation et la mise en cache. Laravel fonctionne bien, mais pour les applications complexes, ThinkPHP peut être mieux adapté.

Comment installer thinkphp Comment installer thinkphp Apr 09, 2024 pm 05:42 PM

Étapes d'installation de ThinkPHP : Préparez les environnements PHP, Composer et MySQL. Créez des projets à l'aide de Composer. Installez le framework ThinkPHP et ses dépendances. Configurez la connexion à la base de données. Générez le code de l'application. Lancez l'application et visitez http://localhost:8000.

Quelles sont les performances de thinkphp ? Quelles sont les performances de thinkphp ? Apr 09, 2024 pm 05:24 PM

ThinkPHP est un framework PHP hautes performances présentant des avantages tels que le mécanisme de mise en cache, l'optimisation du code, le traitement parallèle et l'optimisation des bases de données. Les tests de performances officiels montrent qu'il peut gérer plus de 10 000 requêtes par seconde et qu'il est largement utilisé dans les sites Web à grande échelle et les systèmes d'entreprise tels que JD.com et Ctrip dans les applications réelles.

Stratégies d'analyse et d'optimisation des performances des files d'attente Java Queue Stratégies d'analyse et d'optimisation des performances des files d'attente Java Queue Jan 09, 2024 pm 05:02 PM

Analyse des performances et stratégie d'optimisation de JavaQueue Résumé de la file d'attente : La file d'attente (file d'attente) est l'une des structures de données couramment utilisées en Java et est largement utilisée dans divers scénarios. Cet article abordera les problèmes de performances des files d'attente JavaQueue sous deux aspects : l'analyse des performances et les stratégies d'optimisation, et donnera des exemples de code spécifiques. Introduction La file d'attente est une structure de données premier entré, premier sorti (FIFO) qui peut être utilisée pour implémenter le mode producteur-consommateur, la file d'attente des tâches du pool de threads et d'autres scénarios. Java fournit une variété d'implémentations de files d'attente, telles que Arr

Où se trouve le fichier de la page d'accueil de thinkphp ? Où se trouve le fichier de la page d'accueil de thinkphp ? Apr 09, 2024 pm 05:54 PM

Le fichier de page d'accueil dans le framework ThinkPHP est utilisé pour définir la page d'accueil du site Web. Il se trouve dans app/home/controller/IndexController.php et contient une méthode d'action nommée index, qui est responsable du traitement des demandes de page d'accueil. Cette méthode contient la logique métier de la page d'accueil et renvoie le fichier de vue app/home/view/index/index.html.

See all articles