2 votes

Comment redémarrer le superviseur pour un déploiement Laravel ?

J'utilise actuellement une tâche cron pour appeler php artisan queue:work --once chaque minute pour travailler sur la file d'attente de mes travaux en production.

Je voudrais utiliser le superviseur à la place pour gérer mes files d'attente.

Dans les docs, dans la section de configuration du superviseur il déclare :

Les travailleurs de la file d'attente étant des processus à longue durée de vie, ils ne prendront pas en compte les modifications apportées à votre code sans être redémarrés. Ainsi, la façon la plus simple de déployer une application utilisant des travailleurs de file d'attente est de redémarrer les travailleurs pendant votre processus de déploiement. Vous pouvez redémarrer gracieusement tous les workers en lançant la commande queue:restart :

php artisan queue:restart

Cette commande demandera à tous les travailleurs de la file d'attente de "mourir" gracieusement après avoir fini de traiter leur travail actuel afin qu'aucun travail existant ne soit perdu. Puisque les travailleurs de la file d'attente mourront lorsque la commande queue:restart sera exécutée, vous devriez utiliser un gestionnaire de processus tel que Supervisor pour redémarrer automatiquement les travailleurs de la file d'attente.

Je ne comprends pas la dernière phrase. Admettons que j'ai installé et configuré le superviseur comme décrit aquí et je me suis connecté manuellement au serveur via ssh et j'ai démarré le superviseur :

sudo supervisorctl start laravel-worker:*

Dois-je appeler php artisan queue:restart sur le déploiement ? Si oui, cela ne fera que tuer tous les travailleurs actuels, comment puis-je dire au superviseur de redémarrer les travailleurs de la file d'attente ? Dois-je appeler sudo supervisorctl restart laravel-worker:* dans le déploiement après php artisan queue:restart ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X