:::: MENU ::::

Laravel Queue Worker avec Supervisor

Spread the love

Salut à tous;

Aujourd’hui je vais vous parler d’une solution très pratique pour faire tourner certains services applicatifs dont Laravel Queue Worker pour gérer vos Jobs sur Laravel.

Laravel Jobs ? pourquoi ?

Pour exécuter en arrière-plan certains services lent à s’exécuter comme l’envoi de newsletters, l’exportation ou l’importation de données en masse (Je vous invite à lire Laravel Queue).

Comment lancer le Worker en arrière plan ?

Il est possible d’utiliser Cron pour lancer le Worker de Laravel mais ce n’est pas très pratique et surtout vous n’avez aucun suivi sur vos jobs en cours.

Toute fois dans le cas où vous n’avez pas la possibilité d’installer Supervisor vous pouvez toujours utiliser Cron(je vous laisserai le code à mettre en bas de l’article).

Supervisor ?

Supervisor est un petit outil en Python et permettant d’assurer le suivi et le contrôle de services/processus applicatifs, il parfait pour lancer et suivre des services applicatifs liés à un projet et qui doivent être démarrés et disponibles en permanence.

D’où l’intérêt de l’utiliser dans projets Laravel ou NodeJS

Installer Supervisor sur Debian/Ubuntu

Supervisor est disponible en paquet debian donc rien de plus simple pour installer

Ajouter Laravel Worker à Supervisor

Pour ajouter un service à Supervisor il suffit de créer un fichier portant le nom du service avec l’extension .conf dans

Je vais prendre l’exemple sur la doc de Laravel

En suite il faut juste mettre à jour Supervisor

Activer l’interface WEB de Supervisor

Supervisor fournit une interface web qui permet de gérer les services de la même façon que la CLI., l’interface n’est pas activée par défaut donc il faut le faire en ajouter un fichier avec le nom « inet_http_server.conf » avec le contenu suivant :

Dans le répertoire de configuration de Supervisor :

Gérer plusieurs sites Laravel

Si vous avez plusieurs sites et que vous souhaitez tous les monitorer via Supervisor sans conflit il faut attribuer à chaque site un fichier .conf (comme l’exemple vue en haut) mais en change le nom de la queue

Et changer le nom de la queue par défaut dans Laravel

Ajouter le nom dans votre fichier .env

Simuler Supervisor avec Cron

Comme je vais promis en haut, dans le cas ou vous ne pouvez pas installer Supervisor (Hébergement mutualisé) il suffit d’ajouter dans

Voilà !


So, what do you think ?