Menjalankan Pekerja Antrian Laravel sebagai Layanan SystemD

Menjalankan Pekerja Antrian Laravel sebagai Layanan SystemD

Laravel adalah kerangka kerja aplikasi web PHP populer yang menyederhanakan proses membangun aplikasi web modern dan dapat diskalakan. Salah satu fitur utama Laravel adalah kemampuannya untuk menangani pekerjaan latar belakang melalui sistem antriannya. Pekerja antrian Laravel dirancang untuk memproses pekerjaan antrian secara tidak sinkron di latar belakang, yang dapat sangat meningkatkan kinerja dan responsif aplikasi web Anda.

Sementara Laravel menyediakan antarmuka baris perintah sederhana untuk mengelola pekerja antrian, bisa menjadi sulit untuk membuat mereka berjalan terus menerus di lingkungan produksi. Di artikel ini, kami akan mengeksplorasi cara menjalankan pekerja antrian Laravel menggunakan SystemD, sistem init populer untuk Linux.

Prasyarat

Sebelum kita mulai, Anda harus memastikan bahwa server Anda memenuhi persyaratan berikut:

  • Sistem operasi berbasis Linux
  • PHP Versi 7.2 atau lebih tinggi
  • Kerangka kerja Laravel diinstal dan dikonfigurasi
  • Sistem SystemD Init diinstal dan dikonfigurasi

Membuat Layanan SystemD

Langkah pertama dalam menjalankan pekerja antrian Laravel dengan SystemD adalah membuat file layanan SystemD. File ini akan menentukan perilaku pekerja antrian dan bagaimana harus dimulai, dihentikan, dan dimulai ulang.

Buat file baru di “/Etc/systemd/system/” direktori dengan a .ekstensi layanan, seperti “Pekerja Laravel.melayani".

sudo nano/etc/systemd/system/laravel-worker.melayani  

Tambahkan konten berikut ke file:

[Unit] Deskripsi = Laravel Antrian Pekerja Setelah = Jaringan.Target [Layanan] user = www-data grup = www-data restart = selalu workingdirectory =/path/to/your/laravel execStart =/usr/bin/php artisan antrian: bekerja --sleep = 3 --tries = 3 [ Instal] wantedby = multi-pengguna.target
12345678910111213[Unit] Deskripsi = Laravel WorkerAfter = jaringan.Target [Layanan] user = www-datagroup = www-datarestart = alwaysworkingdirectory =/path/to/your/laravelExecStart =/usr/bin/php artisan antrian: bekerja-tidur = 3 --tries = 3 [install] wantedby = multi-pengguna.target

Mengganti “/Path/to/Your/Laravel” Dengan direktori aplikasi Laravel Anda. Atur juga perintah pengrajin Anda "ExecStart" pilihan.

Mari kita uraikan file ini dan apa artinya setiap bagian:

  • Satuan: Bagian ini mendefinisikan unit layanan dan memberikan deskripsi singkat tentang apa yang dilakukannya. Parameter setelah menentukan bahwa layanan harus dimulai setelah target jaringan tercapai.
  • Melayani: Bagian ini menentukan rincian bagaimana layanan harus dijalankan. Parameter pengguna dan grup menentukan pengguna dan grup yang harus dijalankan layanan. Itu "Mengulang kembali" Parameter menentukan bahwa layanan harus dimulai ulang jika berhenti atau macet. Itu "ExecStart" Parameter Menentukan perintah yang harus dijalankan untuk memulai pekerja antrian. Dalam hal ini, kami menggunakan biner PHP untuk menjalankan antrian: perintah kerja dengan --tidur = 3 Dan --mencoba = 3 pilihan. Opsi -opsi ini menentukan bahwa pekerja antrian harus tidur selama 3 detik antara setiap pekerjaan dan harus mencoba lagi pekerjaan yang gagal hingga 3 kali sebelum menandainya sebagai gagal.
  • Install: Bagian ini menentukan level menjalankan di mana layanan harus diaktifkan. Parameter WantedBy menentukan bahwa layanan harus diaktifkan dalam target multi-pengguna, yang merupakan target default untuk sebagian besar distribusi Linux.

Simpan file dan keluar dari editor.

Memungkinkan layanan

Pertama -tama jalankan perintah berikut untuk memuat ulang SystemD Daemon Service. Anda perlu menjalankan perintah ini setiap saat, Anda membuat perubahan dalam file layanan.

Sudo Systemctl Daemon-Reload  

Untuk memastikan bahwa pekerja antrian Laravel dimulai secara otomatis ketika server boot, kami dapat mengaktifkan layanan menggunakan perintah berikut:

Sudo Systemctl memungkinkan pekerja Laravel  

Perintah ini akan membuat symlink di direktori yang sesuai untuk memulai layanan secara otomatis pada boot.

Memulai layanan

Sekarang kami telah membuat dan mengaktifkan file layanan SystemD, kami dapat memulai layanan menggunakan perintah berikut:

Sudo Systemctl Mulai Laravel-pekerja  

Perintah ini akan memulai Pekerja Antrian Laravel sebagai Layanan SystemD. Anda dapat memverifikasi bahwa layanan berjalan dengan benar dengan memeriksa statusnya:

Sudo Systemctl Status Laravel-worker  

Perintah ini akan menampilkan informasi tentang Layanan, termasuk status saat ini dan entri log terbaru.

Mengontrol Layanan

Setelah layanan berjalan, Anda dapat mengontrolnya menggunakan perintah SystemD standar. Berikut adalah beberapa perintah umum yang dapat Anda gunakan untuk mengontrol Layanan Pekerja Antrian Laravel:

  • Sudo Systemctl Stop Laravel-worker: Perintah ini akan menghentikan layanan.
  • Sudo Systemctl restart Laravel-worker: Perintah ini akan memulai kembali layanan.
  • Sudo Systemctl Nonaktifkan Laravel-pekerja: Perintah ini akan menonaktifkan layanan dari memulai secara otomatis saat boot.
  • Sudo Systemctl Status Laravel-worker: Perintah ini akan menampilkan status layanan, termasuk apakah itu berjalan atau dihentikan, dan entri log terbaru.

Kesimpulan

Menjalankan pekerja antrian Laravel dengan SystemD adalah cara yang bagus untuk memastikan bahwa pekerjaan latar belakang Anda selalu berjalan dengan lancar dan efisien di lingkungan produksi. Dengan membuat file layanan SystemD dan mengaktifkannya pada boot, Anda dapat mengotomatiskan proses memulai dan menghentikan pekerja antrian, membuatnya mudah untuk dikelola dan dikendalikan.

Di artikel ini, kami telah membahas langkah -langkah dasar untuk membuat file layanan SystemD untuk pekerja antrian Laravel, memulai layanan, mengaktifkannya pada boot, dan mengendalikannya menggunakan perintah SystemD. Dengan pengetahuan ini, Anda dapat dengan percaya diri mengelola dan mengukur aplikasi Laravel Anda dengan mudah.