Laravel adalah framework aplikasi web PHP populer yang menyederhanakan proses pembuatan aplikasi web modern yang dapat diskalakan. Salah satu fitur utama Laravel adalah kemampuannya untuk menangani pekerjaan latar belakang melalui sistem antriannya. Pekerja antrean Laravel dirancang untuk memproses pekerjaan antrean secara asinkron di latar belakang, yang dapat sangat meningkatkan kinerja dan daya tanggap aplikasi web Anda.
Advertisement
Meskipun Laravel menyediakan antarmuka baris perintah sederhana untuk mengelola pekerja antrean, akan sulit untuk membuatnya terus berjalan di lingkungan produksi. Pada artikel ini, kita akan mengeksplorasi cara menjalankan Laravel queue worker menggunakan Systemd, sistem init populer untuk Linux.
Prasyarat
Sebelum kita mulai, Anda harus memastikan bahwa server Anda memenuhi persyaratan berikut:
A sistem operasi berbasis Linux versi PHP 7.2 atau lebih tinggi Kerangka kerja Laravel diinstal dan dikonfigurasi Sistem init Systemd 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 seharusnya dimulai, dihentikan, dan dimulai ulang.
Buat file baru di direktori “/etc/systemd/system/” dengan ekstensi .service, seperti “laravel-worker .service”.
sudo nano /etc/systemd/system/laravel-worker.service
Tambahkan konten berikut ke file:
[Unit] Description=Laravel Queue Worker After=network.target [Layanan ] User=www-data Group=www-data Restart=always WorkingDirectory=/path/to/your/laravel ExecStart=/usr/bin/php artisan queue:work --sleep=3 --tries=3 [Instal] WantedBy =multi-user.target12345678910111213[Unit]Description=Laravel Queue WorkerAfter=network.target [Layanan]User=www-dataGroup=www-dataRestart=alwaysWorkingDirectory=/path/to/your/laravelExecStart=/usr/bin/php artisan queue :work --sleep=3 --tries=3 [Install]WantedBy=multi-user.target
Ganti “/path/to/your/laravel” dengan direktori aplikasi Laravel Anda. Atur juga perintah artisan Anda di opsi “ExecStart”. Parameter After menentukan bahwa layanan harus dimulai setelah target jaringan tercapai. Layanan: Bagian ini menentukan detail tentang bagaimana layanan harus dijalankan. Parameter Pengguna dan Grup menentukan pengguna dan grup tempat layanan harus dijalankan. Parameter "Restart" menentukan bahwa layanan harus dimulai ulang jika berhenti atau macet. Parameter "ExecStart" menentukan perintah yang harus dijalankan untuk memulai pekerja antrian. Dalam hal ini, kami menggunakan binary php untuk menjalankan perintah queue:work dengan opsi --sleep=3 dan --tries=3. Opsi ini menentukan bahwa pekerja antrean harus tidur selama 3 detik di antara setiap pekerjaan dan harus mencoba kembali pekerjaan yang gagal hingga 3 kali sebelum menandainya sebagai gagal. Instal: Bagian ini menentukan tingkat proses di mana layanan harus diaktifkan. Parameter WantedBy menetapkan bahwa layanan harus diaktifkan di target multi-pengguna, yang merupakan target default untuk sebagian besar distribusi Linux.
Simpan file dan keluar dari editor.
Mengaktifkan Layanan
Pertama jalankan perintah berikut untuk memuat ulang layanan daemon systemd. Anda perlu menjalankan perintah ini setiap kali, Anda membuat perubahan apa pun pada file layanan.
sudo systemctl daemon-reload
Untuk memastikan bahwa pekerja antrian Laravel dimulai secara otomatis saat server dinyalakan, kita dapat mengaktifkan layanan menggunakan perintah berikut:
sudo systemctl enable laravel-worker
Perintah ini akan membuat symlink di direktori yang sesuai untuk memulai layanan secara otomatis saat boot.
Memulai Service
Sekarang kita telah membuat dan mengaktifkan file layanan Systemd , kita dapat memulai layanan menggunakan perintah berikut:
sudo systemctl start laravel-worker
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
Once layanan sedang 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 ulang layanan. sudo systemctl disable laravel-worker: Perintah ini akan menonaktifkan layanan agar tidak dimulai secara otomatis saat boot. sudo systemctl status laravel-worker: Perintah ini akan menampilkan status layanan, termasuk apakah sedang berjalan atau berhenti, dan setiap entri log terbaru. Kesimpulan
Menjalankan pekerja antrian Laravel dengan Systemd adalah cara yang bagus untuk memastikan bahwa pekerjaan latar belakang Anda selalu berjalan lancar dan efisien di lingkungan produksi. Dengan membuat file layanan Systemd dan mengaktifkannya saat boot, Anda dapat mengotomatiskan proses memulai dan menghentikan pekerja antrean, membuatnya mudah untuk mengelola dan mengontrol.
Dalam artikel ini, kami telah membahas langkah-langkah dasar untuk membuat file layanan Systemd untuk pekerja antrian Laravel, memulai layanan, mengaktifkannya saat boot, dan mengontrolnya menggunakan perintah Systemd. Dengan pengetahuan ini, Anda dapat dengan percaya diri mengelola dan menskalakan aplikasi Laravel Anda dengan mudah.
Referensi tecadmin.comArtikel Diperbarui pada: March 02, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani