Menjalankan pekerja giliran laravel sebagai perkhidmatan sistemd

Menjalankan pekerja giliran laravel sebagai perkhidmatan sistemd

Laravel adalah kerangka aplikasi Web PHP yang popular yang memudahkan proses membina aplikasi web moden dan berskala. Salah satu ciri utama Laravel adalah keupayaannya untuk mengendalikan pekerjaan latar belakang melalui sistem beraturnya. Pekerja beratur Laravel direka untuk memproses pekerjaan yang dihukum secara tidak segerak di latar belakang, yang dapat meningkatkan prestasi dan respons aplikasi web anda.

Walaupun Laravel menyediakan antara muka baris arahan yang mudah untuk menguruskan pekerja giliran, ia boleh mencabar untuk memastikan mereka berjalan secara berterusan dalam persekitaran pengeluaran. Dalam artikel ini, kami akan meneroka cara menjalankan pekerja beratur Laravel menggunakan SystemD, sistem init yang popular untuk Linux.

Prasyarat

Sebelum kita mula, anda perlu memastikan bahawa pelayan anda memenuhi keperluan berikut:

  • Sistem operasi berasaskan Linux
  • PHP Versi 7.2 atau lebih tinggi
  • Rangka kerja Laravel dipasang dan dikonfigurasikan
  • Sistem iNit Systemd dipasang dan dikonfigurasikan

Membuat perkhidmatan Systemd

Langkah pertama dalam menjalankan pekerja giliran laravel dengan systemd adalah untuk membuat fail perkhidmatan systemd. Fail ini akan menentukan tingkah laku pekerja giliran dan bagaimana ia harus dimulakan, dihentikan, dan dimulakan semula.

Buat fail baru di "/Etc/Systemd/System/" direktori dengan a .pelanjutan perkhidmatan, seperti "Laraveler-worker.Perkhidmatan ".

sudo nano/etc/Systemd/System/Laraveler-worker.perkhidmatan  

Tambahkan kandungan berikut ke fail:

[Unit] Description = pekerja giliran laravel selepas = rangkaian.sasaran [service] user = www-data kumpulan = www-data restart = selalu bekerja Pasang] Wanteby = Multi-User.sasaran
12345678910111213[Unit] Description = Laravel Queue WorkerAfter = Network.sasaran [service] user = www-datagroup = www-datarestart = sentiasaWorkingDirectory =/path/to/your/laravelExecstart =/usr/bin/php artisan giliran: work--sleep = 3 --tries = 3 [install] wanteby = MULTI-USER.sasaran

Menggantikan "/Jalan/ke/anda/laravel" dengan direktori aplikasi laravel anda. Juga tetapkan arahan artis anda di "Execstart" pilihan.

Mari kita pecahkan fail ini dan apa maksud setiap bahagian:

  • Unit: Bahagian ini mentakrifkan unit perkhidmatan dan memberikan gambaran ringkas mengenai apa yang dilakukannya. Parameter selepas menyatakan bahawa perkhidmatan harus bermula setelah sasaran rangkaian telah dicapai.
  • Perkhidmatan: Bahagian ini menentukan butiran bagaimana perkhidmatan itu dijalankan. Parameter pengguna dan kumpulan menentukan pengguna dan kumpulan bahawa perkhidmatan itu harus berjalan di bawah. The "Mula semula" Parameter menentukan bahawa perkhidmatan harus dimulakan semula jika ia berhenti atau kemalangan. The "Execstart" Parameter Menentukan arahan yang harus dijalankan untuk memulakan pekerja giliran. Dalam kes ini, kami menggunakan binari PHP untuk menjalankan barisan: arahan kerja dengan --Tidur = 3 dan --cuba = 3 pilihan. Pilihan ini menyatakan bahawa pekerja giliran harus tidur selama 3 saat antara setiap pekerjaan dan harus mencuba pekerjaan gagal sehingga 3 kali sebelum menandakan mereka gagal.
  • Pasang: Bahagian ini menentukan tahap larian di mana perkhidmatan harus diaktifkan. Parameter WantyBy menentukan bahawa perkhidmatan harus diaktifkan dalam sasaran multi-pengguna, yang merupakan sasaran lalai untuk kebanyakan pengagihan Linux.

Simpan fail dan keluar dari editor.

Membolehkan perkhidmatan

Mula -mula melaksanakan arahan berikut untuk memuatkan semula perkhidmatan daemon systemd. Anda perlu menjalankan arahan ini setiap kali, anda membuat perubahan dalam fail perkhidmatan.

SUDO Systemctl Daemon-Reload  

Untuk memastikan bahawa pekerja giliran Laravel bermula secara automatik apabila pelayan boot, kami dapat mengaktifkan perkhidmatan menggunakan arahan berikut:

sudo systemctl membolehkan pekerja laravel  

Perintah ini akan membuat symlink dalam direktori yang sesuai untuk memulakan perkhidmatan secara automatik pada boot.

Memulakan perkhidmatan

Sekarang bahawa kami telah membuat dan mengaktifkan fail perkhidmatan SystemD, kami boleh memulakan perkhidmatan menggunakan arahan berikut:

SUDO Systemctl Mula pekerja Laravel  

Perintah ini akan memulakan pekerja beratur laravel sebagai perkhidmatan sistemd. Anda boleh mengesahkan bahawa perkhidmatan berjalan dengan betul dengan memeriksa statusnya:

status sistem sudo laravel-pekerja  

Perintah ini akan memaparkan maklumat mengenai Perkhidmatan, termasuk status semasa dan sebarang entri log baru -baru ini.

Mengawal perkhidmatan

Sebaik sahaja perkhidmatan berjalan, anda boleh mengawalnya menggunakan arahan sistem standard. Berikut adalah beberapa arahan biasa yang boleh anda gunakan untuk mengawal perkhidmatan pekerja beratur Laravel:

  • SURDO SYSTEMCTL STOP LARVELER-Pekerja: Perintah ini akan menghentikan perkhidmatan.
  • SURDO SYSTEMCTL Mulakan semula pekerja Laravel: Perintah ini akan memulakan semula perkhidmatan.
  • SUDO SYSTEMCTL Lumpuhkan pekerja Laravel: Perintah ini akan melumpuhkan perkhidmatan dari bermula secara automatik pada boot.
  • status sistem sudo laravel-pekerja: Perintah ini akan memaparkan status perkhidmatan, termasuk sama ada ia berjalan atau dihentikan, dan sebarang penyertaan log baru -baru ini.

Kesimpulan

Menjalankan pekerja giliran laravel dengan SystemD adalah cara terbaik untuk memastikan pekerjaan latar belakang anda sentiasa berjalan lancar dan cekap dalam persekitaran pengeluaran. Dengan membuat fail perkhidmatan Systemd dan membolehkannya pada boot, anda boleh mengautomasikan proses memulakan dan menghentikan pekerja giliran, menjadikannya mudah untuk mengurus dan mengawal.

Dalam artikel ini, kami telah meliputi langkah -langkah asas untuk membuat fail perkhidmatan Systemd untuk pekerja giliran laravel, memulakan perkhidmatan, membolehkannya pada boot, dan mengawalnya menggunakan arahan Systemd. Dengan pengetahuan ini, anda dengan yakin dapat mengurus dan skala aplikasi Laravel anda dengan mudah.