Uruchamianie pracownika Laravel w kolejce jako usługa systemu

Uruchamianie pracownika Laravel w kolejce jako usługa systemu

Laravel to popularna framework aplikacji PHP, który upraszcza proces budowania nowoczesnych, skalowalnych aplikacji internetowych. Jedną z kluczowych cech Laravel jest jego zdolność do obsługi zadań w tle za pośrednictwem systemu kolejkowania. Pracownicy z kolejek Laravel są zaprojektowane do asynchronicznego przetwarzania zadań w kolejce w tle, co może znacznie poprawić wydajność i reakcję Twojej aplikacji internetowej.

Podczas gdy Laravel zapewnia prosty interfejs wiersza poleceń do zarządzania pracownikami kolejki, utrzymywanie ich w środowiskach produkcyjnych może być trudne. W tym artykule zbadamy, jak uruchamiać pracowników Laravel w kolejce za pomocą SystemD, popularnego systemu init for Linux.

Wymagania wstępne

Zanim zaczniemy, musisz upewnić się, że Twój serwer spełnia następujące wymagania:

  • System operacyjny oparty na systemie Linuksa
  • Wersja PHP 7.2 lub więcej
  • Framework LaraVel zainstalowany i skonfigurowany
  • SystemD System INIT zainstalowany i skonfigurowany

Tworzenie usługi SystemD

Pierwszym krokiem w uruchomieniu pracowników Laravel Queue z SystemD jest utworzenie pliku serwisowego SystemD. Ten plik zdefiniuje zachowanie pracownika w kolejce i sposób, w jaki należy go uruchomić, zatrzymać i ponownie uruchomić.

Utwórz nowy plik w „/ETC/Systemd/System/” katalog z .rozszerzenie usług, takie jak „Laravel -worker.praca".

sudo nano/etc/systemd/system/laravel-robotnik.praca  

Dodaj następującą zawartość do pliku:

[Jednostka] Opis = Laravel Queue Worker After = Network.Target [Service] User = www-data grupa = www-data restart = zawsze pracujący Instaluj] WANTYBY = Multi-User.cel
12345678910111213[Jednostka] Opis = Laravel Queue WorkeraFter = Network.Target [Service] User = www-DataGroup = www-datarestart = zawsze tworzenie robót =/ścieżka/to/your/laraveLexecStart =/usr/php Artisan kolejka: praca--Sleep = 3 --Tries = 3 [instalacja] WANSPIRY = Multi-użytkownik.cel

Zastępować „/Ścieżka/do/Twoje/laravel” z katalogiem aplikacji Laravel. Ustaw także swoje polecenie rzemieślnicze „EXECSTART” opcje.

Rozbijmy ten plik i co oznacza każda sekcja:

  • Jednostka: Ta sekcja określa jednostkę serwisową i zawiera krótki opis tego, co robi. Parametr po ustaleniu określa, że ​​usługa powinna rozpocząć się po osiągnięciu celu sieci.
  • Praca: W tej sekcji określa szczegóły dotyczące uruchomienia usługi. Parametry użytkownika i grupy określają użytkownika i grupę, pod którą usługa powinna uruchomić. „Ponowne uruchom” Parametr określa, że ​​usługa powinna zostać ponownie uruchomiona, jeśli się zatrzyma lub zawiedzie. „EXECSTART” Parametr określa polecenie, które należy uruchomić, aby uruchomić pracownika kolejki. W takim przypadku używamy php binarnego do uruchomienia polecenia kolejki: Work Command with --sen = 3 I --Próbuje = 3 opcje. Te opcje określają, że pracownik kolejki powinien spać przez 3 sekundy między każdym zadaniem i powinien ponowić ponowne nieudane zadania do 3 razy, zanim oznaczy je jako nieudane.
  • Zainstalować: W tej sekcji określa poziomy przebiegu, na których należy włączyć usługę. Parametr Wantby określa, że ​​usługa powinna być włączona w celu wielu użytkowników, który jest domyślnym celem dla większości rozkładów Linux.

Zapisz plik i wyjdź z edytora.

Włączanie usługi

Najpierw wykonaj następujące polecenie, aby ponownie załadować Systemd Daemon Service. Musisz uruchomić to polecenie za każdym razem, wprowadzasz wszelkie zmiany w pliku serwisowym.

Sudo Systemctl Demon-Reload  

Aby upewnić się, że pracownik Laravel w kolejce rozpoczyna się automatycznie, gdy serwer się uruchomi, możemy włączyć usługę za pomocą następującego polecenia:

Sudo Systemctl Włącz Laravel-Worker  

To polecenie utworzy symLink w odpowiednim katalogu, aby automatycznie uruchomić Usługę podczas rozruchu.

Uruchomienie usługi

Teraz, gdy utworzyliśmy i aktywowaliśmy plik usługi SystemD, możemy uruchomić usługę za pomocą następującego polecenia:

sudo systemctl start laravel-robotnik  

To polecenie uruchomi pracownika Laravela w kolejce jako usługa SystemD. Możesz sprawdzić, czy usługa działa poprawnie, sprawdzając jej status:

SUDO SystemCtl Status Laravel-Worker  

To polecenie wyświetli informacje o usłudze, w tym jej aktualny status i wszelkie najnowsze wpisy dziennika.

Kontrolowanie usługi

Po uruchomieniu usługi możesz ją kontrolować za pomocą standardowych poleceń SystemD. Oto kilka typowych poleceń, których możesz użyć do kontrolowania usługi robotników w kolejce Laravel:

  • Sudo Systemctl Stop Laravel-Worker: To polecenie zatrzyma usługę.
  • sudo systemctl restart laravel-robotnik: To polecenie ponownie uruchomi usługę.
  • Sudo Systemctl wyłącz Laravel-Worker: To polecenie wyłączy usługę od automatycznego uruchamiania w rozruchu.
  • SUDO SystemCtl Status Laravel-Worker: To polecenie wyświetli status usługi, w tym uruchomiony, czy zatrzymany, oraz wszelkie ostatnie wpisy dziennika.

Wniosek

Uruchomienie pracowników w kolejce Laravel z SystemD to świetny sposób, aby zapewnić, że prace w tle zawsze działają płynnie i wydajnie w środowiskach produkcyjnych. Tworząc plik serwisowy SystemD i włączając go w rozruchu, możesz zautomatyzować proces uruchamiania i zatrzymywania pracownika kolejki, ułatwiając zarządzanie i kontrolą.

W tym artykule omówiliśmy podstawowe kroki w tworzeniu pliku serwisowego systemu dla pracownika Laravela, uruchamianie usługi, włączanie go w rozruchu i kontrolowanie go za pomocą poleceń SystemD. Dzięki tej wiedzy możesz z łatwością zarządzać i skalować aplikacje Laravel.