Exécution du travailleur de la file d'attente Laravel en tant que service Systemd

Exécution du travailleur de la file d'attente Laravel en tant que service Systemd

Laravel est un cadre d'applications Web PHP populaire qui simplifie le processus de création d'applications Web modernes et évolutives. L'une des principales caractéristiques de Laravel est sa capacité à gérer les travaux de fond grâce à son système de file d'attente. Les travailleurs de la file d'attente de Laravel sont conçus pour traiter des travaux en file d'attente de manière asynchrone en arrière-plan, ce qui peut considérablement améliorer les performances et la réactivité de votre application Web.

Alors que Laravel fournit une interface de ligne de commande simple pour gérer les travailleurs de la file d'attente, il peut être difficile de les faire fonctionner en continu dans des environnements de production. Dans cet article, nous explorerons comment exécuter des travailleurs de la file d'attente Laravel à l'aide de Systemd, un système d'initial populaire pour Linux.

Conditions préalables

Avant de commencer, vous devrez vous assurer que votre serveur répond aux exigences suivantes:

  • Un système d'exploitation basé sur Linux
  • PHP Version 7.2 ou plus
  • Le framework Laravel installé et configuré
  • Le système Systemd init installé et configuré

Création d'un service systemd

La première étape dans l'exécution des travailleurs de la file d'attente Laravel avec SystemD est de créer un fichier de service SystemD. Ce fichier définira le comportement du travailleur de la file d'attente et comment il devrait être démarré, arrêté et redémarré.

Créer un nouveau fichier dans le «/ Etc / systemd / System /» répertoire avec un .Extension de service, comme «Laravel-travailleur.service".

Sudo Nano / etc / Systemd / System / Laravel-travailleur.service  

Ajoutez le contenu suivant au fichier:

[Unité] Description = Laravel File Worker After = Network.Target [Service] User = www-data Group = www-data restart = toujours workingDirectory = / path / to / your / Laravel execstart = / usr / bin / php artisan file d'attente: work - sulet = 3 --tries = 3 [ Installer] recherché = multi-utilisateurs.cible
12345678910111213[Unité] Description = Laravel Diregue Workerafter = réseau.Target [Service] User = www-datagroup = www-datarestart = alwaysworkingDirectory = / path / to / your / laravelexecstart = / usr / bin / php artisan filed: work - sulet = 3 --tries = 3 [install] wantedBy = multi-utilisateurs.cible

Remplacer «/ Path / vers / votre / laravel» avec votre répertoire d'application Laravel. Définissez également votre commande d'artisan dans «ExecStart» options.

Décomposons ce fichier et ce que signifie chaque section:

  • Unité: Cette section définit l'unité de service et fournit une brève description de ce qu'elle fait. Le paramètre After.
  • Service: Cette section spécifie les détails de la façon dont le service doit être exécuté. Les paramètres de l'utilisateur et du groupe spécifient l'utilisateur et le groupe que le service doit s'exécuter sous. Le "Redémarrage" Le paramètre Spécifie que le service doit être redémarré s'il s'arrête ou se bloque. Le «ExecStart» Le paramètre spécifie la commande qui devrait être exécutée pour démarrer le travailleur de la file d'attente. Dans ce cas, nous utilisons le binaire PHP pour exécuter la commande de file d'attente: travail avec le --sommeil = 3 et --essais = 3 options. Ces options spécifient que le travailleur de la file d'attente doit dormir pendant 3 secondes entre chaque emploi et devrait réessayer les emplois ratés jusqu'à 3 fois avant de les marquer comme échoué.
  • Installer: Cette section spécifie les niveaux d'exécution auxquels le service doit être activé. Le paramètre WantedBy spécifie que le service doit être activé dans la cible multi-utilisateurs, qui est la cible par défaut pour la plupart des distributions Linux.

Enregistrer le fichier et quitter l'éditeur.

Activer le service

Exécutez d'abord la commande suivante pour recharger le service de démon systemd. Vous devez exécuter cette commande à chaque fois, vous apportez des modifications dans le fichier de service.

Sudo Systemctl Daemon-Reload  

Pour s'assurer que le travailleur de la file d'attente de Laravel démarre automatiquement lorsque le serveur est enraciné, nous pouvons activer le service en utilisant la commande suivante:

sudo systemctl activer Laravel-travailleur  

Cette commande créera un lien symbolique dans le répertoire approprié pour démarrer le service automatiquement sur le démarrage.

Démarrage du service

Maintenant que nous avons créé et activé le fichier de service SystemD, nous pouvons démarrer le service en utilisant la commande suivante:

Sudo Systemctl Démarrer Laravel-travailleur  

Cette commande lancera le Laravel Fitre Worker en tant que service Systemd. Vous pouvez vérifier que le service s'exécute correctement en vérifiant son statut:

Sudo Systemctl Status Laravel-travailleur  

Cette commande affichera des informations sur le service, y compris son statut actuel et toutes les entrées de journal récentes.

Contrôler le service

Une fois le service en cours d'exécution, vous pouvez le contrôler en utilisant les commandes SystemD standard. Voici quelques commandes communes que vous pouvez utiliser pour contrôler le service de travailleur de la file d'attente Laravel:

  • Sudo Systemctl Stop Laravel-travailleur: Cette commande arrêtera le service.
  • sudo systemctl redémarrer Laravel-travailleur: Cette commande redémarrera le service.
  • Sudo Systemctl Désactiver Laravel-travailleur: Cette commande désactivera le service à partir du démarrage automatiquement sur le démarrage.
  • Sudo Systemctl Status Laravel-travailleur: Cette commande affichera l'état du service, y compris s'il est en cours d'exécution ou s'est arrêté, et toutes les entrées de journal récentes.

Conclusion

La gestion des travailleurs de la file d'attente Laravel avec Systemd est un excellent moyen de s'assurer que vos travaux de fond se déroulent toujours en douceur et efficacement dans les environnements de production. En créant un fichier de service SystemD et en l'activant sur Boot, vous pouvez automatiser le processus de démarrage et d'arrêt du travailleur de la file d'attente, ce qui facilite la gestion et le contrôle.

Dans cet article, nous avons couvert les étapes de base pour créer un fichier de service SystemD pour le travailleur de la file d'attente Laravel, le démarrage du service, l'activer sur le démarrage et le contrôler à l'aide de commandes SystemD. Avec ces connaissances, vous pouvez gérer et mettre à l'échelle vos applications Laravel avec facilité avec facilité.