Installation de Supervisor pour gérer les processus de file d'attente Laravel sur Ubuntu

Back-end

Voila ceci semble un sujet tres important mais trouver des bonnes resources c'est parfois tres difficile.

Je vais essaye d'aller droit au but sans tourner au tout du pot. pour vous montrer comment installer Supervisor/Superviseur sur Ubuntu pour gerer les processus de queue (file d'attente dans une application Laravel).

 

C'est Quoi Supeurviseur/Supervisor?

C'est tout simplement un program qui peu etre demerrare en arriere plan pour vous aider a gerer les programmes de gestion de file d'attente comme par example artisan:queue. Donc ici je vais vous enumerer les etapes qu'ils faut pour l'utiliser pour gerer votre programme de gestion des queue de file d'attente dans Laravel.

 

Étape 1 - Télécharger et démarrer Supervisor

$ sudo apt install supervisor
Vérifiez qu'il s'exécute correctement après l'installation :

$ service supervisor status
Supervisor

Étape 2 - Créer le groupe supervisor dans ubuntu

$ sudo groupadd supervisor


Étape 3 - Ajouter un utilisateur au groupe supervisor

$ sudo usermod -a -G supervisor ubuntu


Étape 4 - Ajuster le fichier de configuration de superviseur principal


Voici le chemin complet du fichier /etc/supervisor/supervisord.conf :

; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0770                       ; sockef file mode (default 0700)
chown=ubuntu:supervisor

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf


Dans la section [unix_http_server], nous pouvons voir la directive ajustée chmod=0770 qui attribuera des autorisations d'écrire au groupe pour le fichier socket, ainsi que la ligne chown=ubuntu:supervisor qui ajustera le groupe du fichier socket à notre superviseur nouvellement créé dans le groupe.

Rechargez le processus après avoir ajusté le fichier de configuration :

sudo service supervisor restart


Étape 5 - Ajoutez un fichier de configuration de programme dans /etc/supervisor/conf.d/


Dans cet exemple, nous allons contrôler une file d'attente Laravel ; voici le fichier de configuration dans /etc/supervisor/conf.d/laravel-queue.conf :

[programme:laravel-queue]
nom_processus=%(nom_programme)s_%(numéro_processus)02d
command=sudo php /var/www/laravel/artisan queue:work database --tries=3 --queue=laravel_queue
utilisateur=ubuntu
démarrage automatique=vrai
redémarrage automatique=vrai
numprocs=5
redirect_stderr=true
stdout_logfile=/var/www/laravel/storage/logs/test.log


La variable de commande indique au superviseur quelle commande exécuter, dans notre cas une commande artisan pour travailler sur une file d'attente Laravel spécifique. Le stdout_logfile ajoute un fichier journal au répertoire des journaux de Laravel.

 

Étape 6 - Informer le superviseur du nouveau fichier de configuration du programme


Utilisez la commande reread supervisor pour informer le superviseur du nouveau fichier de configuration du programme que nous venons de créer, puis utilisez la commande update pour appliquer les modifications :

$ supervisorctl reread

queue: changed

$ supervisorctl update

$ supervisorctl status queue:queue_00 RUNNING pid 18494, uptime 0:00:02

Liens utiles
Documentation du superviseur : http://supervisord.org/index.html

Jespere que ceci vous a ete utilie?

You can share this post!

bproo user profil

Kamdjou Duplex

the world would not be so beautiful without people willing to share knowledge