À 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 :
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
Sur le système CentOS, vous pouvez utiliser la commande suivante pour installer :
sudo yum install supervisor
Une fois l'installation terminée, vous pouvez utiliser la commande suivante Start Supervisor :
sudo systemctl start supervisor
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
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 #修改为你的日志文件位置
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
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
É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(); } } }
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); } }
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!