Konfigurasi Supervisor Untuk Queue Laravel Di Linux - CRUDPRO

Konfigurasi Supervisor Untuk Queue Laravel Di Linux

Konfigurasi Supervisor Untuk Queue Laravel DI Linux

Halo semuanya!

Jadi, Setelah membenturkan kepala saya di beberapa artikel, posting, dan banyak utas stack overflow, saya akhirnya berhasil mengatur "SUPERVISOR" untuk pemrosesan antrian laravel dan di sini saya menulis posting ini yang mungkin bisa membantu seseorang.

Pada awalnya, dokumentasi resmi muncul sebagai panduan yang rapi tetapi, bagi saya itu sedikit lebih kabur, karena saya ingin segera menyiapkannya untuk situs saya. Jadi, lebih lanjut tanpa menambahkan apa pun dari cerita saya, izinkan saya membagikan langkah-langkah yang berhasil untuk saya.

Bagi yang belum tahu apa itu “supervisor”, berikut dokumentasi resminya:

Supervisor adalah sistem klien/server yang memungkinkan penggunanya untuk mengontrol sejumlah proses pada sistem operasi mirip UNIX.

(Catatan: Pastikan sebelum Anda melangkah lebih jauh, Anda memiliki izin pemasangan yang diperlukan)

Instalasi:

Instalasi supervisor sangat sederhana seperti menarik paket dari repositori! Tergantung pada manajer paket yang diinstal pada sistem Anda atau kebutuhan Anda, Anda dapat menggunakan salah satu dari perintah berikut untuk menginstal supervisor.

$ pip install supervisor

atau

$ yum install supervisor

atau

$ apt-get install supervisor

atau

$ easy_install supervisor

Jika berhasil diinstal, setelah instalasi supervisor akan mulai berjalan secara otomatis. Untuk memeriksa apakah supervisor sedang menjalankan perintah berikut.

$ ps -aux | grep "supervisor"
Konfigurasi Supervisor Untuk Queue Laravel DI Linux
Konfigurasi:

Setelah diinstal, mengonfigurasi supervisor sebenarnya cukup mudah. Yang perlu kita lakukan hanyalah memperbarui file konfigurasinya. Supervisor dilengkapi dengan file konfigurasi sampel yang dapat kita gunakan secara langsung.

Jalankan perintah berikut untuk menyalin contoh file konfigurasi ke direktori /etc.

$ echo_supervisord_conf > /etc/supervisord.conf

Sekarang, mari buat file konfigurasi khusus untuk mengelola pemrosesan antrian kita. (meskipun kami dapat langsung memodifikasi file konfigurasi yang ada tetapi, saya ingin menjaga semuanya tetap bersih)

Dokumentasi resmi Laravel tentang pekerja antrian memiliki contoh file konfigurasi dasar yang bagus & bersih dan kami dapat dengan mudah mengambilnya. Begini tampilannya, setelah sedikit dimodifikasi.

[program:name_of_worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/artisan/binary artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=someuser
numprocs=8
redirect_stderr=true
stdout_logfile=/path/to/log/file

Saya kira, setiap baris dalam cuplikan di atas cukup jelas! tapi tetap saja atribut perintah adalah yang paling kami minati! (bisa berupa proses/perintah lain yang mungkin ingin kita pantau)

Jadi, buat file (dalam kasus saya my-site-supervisorconf.config) di bawah direktori pengguna Anda atau di mana pun memungkinkan dan rekatkan cuplikan di atas ke dalamnya. (Cukup catat jalur tempat Anda menyimpannya!)

Dalam kasus saya, saya menyimpannya di bawah direktori "situs" saya.

/home/my-site/public_html/my-site-supervisorconf.config

Sekarang sampai pada bagian penting, memberitahu supervisor untuk menghormati file konfigurasi yang baru kita buat. Cukup, buka file konfigurasi sampel yang kami salin di bagian sebelumnya di bawah direktori /etc dengan editor seperti:

$ vim /etc/supervisord.conf

Dan menuju ke bagian bawah file untuk menemukan beberapa baris yang mirip dengan yang di bawah ini.

;[include]
;files=/somepath/*.ini

Selanjutnya, batalkan komentar direktif [include] dan tambahkan satu baris lagi atau edit baris yang ada yang mengatakan file tersebut dan tentukan jalur ke file konfigurasi yang baru dibuat. (Aku menyuruhmu untuk mencatatnya). anda akan berakhir dengan sesuatu yang mirip dengan baris di bawah ini:

[include]
files=/home/my-site/public_html/my-site-supervisorconf.config

(Ya.. saya tahu itu, file sampel berisi banyak hal, tetapi abaikan saja untuk saat ini… Namun, jika Anda benar-benar ingin tahu apa yang dilakukan setiap baris, lihat tautan di bawah ini http://supervisord. org/configuration.html)

Kita hampir selesai!

Memonitor proses kami dengan supervisor :

Sejauh ini kami telah berhasil menginstal & membuat file konfigurasi baru yang menentukan proses (pekerja antrian) yang akan dipantau tetapi sebagai pengawas sudah dimulai dan sedang berjalan, ia tidak mengetahui adanya perubahan.

mari buat supervisor menyadari perubahan kita sekarang!

"Supervisor" hadir dengan alat konfigurasi bernama "supervisorctl" yang pada dasarnya memungkinkan kita untuk mengkonfigurasi, memantau, memulai dan menghentikan proses yang berjalan di bawahnya.

Mari kita gunakan, perintah supervisorctl untuk menambahkan perubahan konfigurasi baru ke konfigurasi yang sedang dimuat. Untuk melakukannya, jalankan perintah berikut dalam urutan di bawah ini.

(Catatan: meskipun di beberapa utas yang saya temukan, beberapa orang merekomendasikan menjalankan salah satu dari perintah. Tetapi, saya mengikuti urutan berikut dan itu bekerja dengan baik untuk saya)

$ supervisorctl reread
$ supervisorctl update
Konfigurasi Supervisor Untuk Queue Laravel DI Linux
$ supervisorctl start all

atau

$ supervisorctl start job_worker

(nama pekerja yang ingin Anda jalankan!)

jika Anda mengikuti semuanya dengan benar dan semuanya berjalan dengan baik, Anda akan melihat output yang mirip dengan berikut.

Konfigurasi Supervisor Untuk Queue Laravel DI Linux

dan akhirnya kita SELESAI!

Itu tidak sulit bukan?

CATATAN:

Jika sesuatu tidak berhasil untuk Anda, coba hentikan dan mulai ulang supervisor lagi dengan

KILL -s SIGTEM $(supervisorctl pid)

untuk memeriksa jumlah proses yang berjalan coba jalankan

$ supervisorctl

dan itu akan menunjukkan sesuatu seperti:

Konfigurasi Supervisor Untuk Queue Laravel DI Linux

Pembaruan:

Hai Teman-teman, berikut adalah beberapa hal lagi yang dapat membantu Anda untuk men-debug masalah umum.

(Maret 2020):

  1. Supervisor installed but supervisor.conf file missing?
    In few cases when supervisor installed, supervisord.conf file was not published so, here what you can do :
    Find the location of supervisord binary with following command and navigate to the directory (here /usr/bin)
    $ whereis supervisor
Konfigurasi Supervisor Untuk Queue Laravel DI Linux

Sekarang, cari file bernama echo_supervisord_conf dan arahkan outputnya ke lokasi di mana Anda ingin supervisord.conf disimpan dengan menjalankan file tersebut. Pastikan direktori tujuan ada.

[root@myserver bin]# echo_supervisord_conf > /etc/supervisord/supervisord.conf
Konfigurasi Supervisor Untuk Queue Laravel DI Linux

2. Program lain menggunakan port HTTP:

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

Masalah ini dapat diatasi hanya dengan menghapus file soket yang terkait dan menyediakan sumber daya untuk file konfigurasi supervisor.

[Catatan: File soket default adalah file /tmp/supervisor.sock.]

[root@myserver supervisor]# rm /tmp/supervisor.sock

dan

[root@myserver supervisor]# supervisord -c supervisord.conf
Konfigurasi Supervisor Untuk Queue Laravel DI Linux

dan ini harus menyelesaikan masalah.

Saya harap ini akan membantu Anda lebih lanjut. Saya akan terus memperbarui posting bila memungkinkan, silakan terus periksa kembali!