Cara Mudah Monitoring Queue di Laravel Horizon

Cara Mudah Monitoring Queue di Laravel Horizon

Laravel Horizon adalah tool keren buat kamu yang pakai queue di aplikasi Laravel. Horizon ini bisa membantu developer memantau dan mengelola queue dengan lebih gampang, lewat dashboard yang simpel tapi powerful. Di artikel ini, kita bakal bahas apa itu Laravel Horizon, kenapa penting buat aplikasi Laravel, cara instalasinya, dan fitur-fiturnya yang bikin hidup developer lebih mudah.

Apa Itu Laravel Horizon?

Laravel Horizon adalah paket manajemen queue dari Laravel yang bikin proses monitoring dan kontrol queue jadi lebih praktis. Dengan Horizon, kamu bisa lihat secara real-time status dari setiap job yang sedang berjalan, job yang udah selesai, dan yang mungkin gagal. Jadi, Horizon ini cocok banget buat kamu yang ingin memastikan queue berjalan smooth di aplikasi.

Kenapa Laravel Horizon Penting?

Kalau aplikasi kamu punya banyak job di background, seperti kirim email, update database, atau proses file besar, queue bakal bantu handle semua itu biar nggak nge-lag. Tapi, makin banyak job, makin sulit juga monitor dan atur queue-nya, kan? Di sinilah Laravel Horizon berperan penting:

  1. Monitoring Real-Time: Horizon kasih kamu akses langsung untuk lihat job mana aja yang sedang diproses, berhasil, atau yang gagal.
  2. Analitik dan Statistik: Horizon nyimpen data seperti waktu eksekusi job, jumlah job yang udah diproses, dan log error yang pernah terjadi.
  3. Mudah di-Manajemen: Kamu bisa setting jumlah worker atau bahkan restart job yang gagal langsung dari dashboard Horizon tanpa coding tambahan.

Fitur-Fitur Laravel Horizon

Laravel Horizon punya beberapa fitur utama yang membuat pengelolaan queue jadi lebih rapi:

  • Dashboard Visual: Di dashboard ini, kamu bisa melihat semua queue dan status job secara real-time, termasuk history job yang sukses atau gagal.
  • Manajemen Redis: Horizon bekerja di atas Redis, dan bisa setting jumlah worker untuk proses job dengan efisien.
  • Notifikasi Kegagalan: Kalau ada job yang gagal, Horizon bisa langsung kasih notifikasi ke Slack, email, atau platform lain yang bisa kita setting.
  • Queue Grouping: Kamu bisa grup queue yang prioritas tinggi, supaya lebih cepat diproses dan nggak numpuk sama job lain yang prioritasnya lebih rendah.

Cara Install Laravel Horizon

Laravel Horizon bisa diinstall lewat Composer. Berikut commandnya:

  1. Install Laravel Horizon
    Buka terminal, lalu jalankan command ini:

    composer require laravel/horizon
  2. Publish Assets Horizon
    Setelah menginstall package horizonnya, sekarang kita harus publish terlebih dahulu assets nya dengan command ini:

    php artisan horizon:install
  3. Akses Dashboard Horizon
    Setelah langkah di atas berhasil, kamu bisa ketik url http://127.0.0.1:8000/horizon, maka nanti akan masuk ke dashboard Horizon.

    Di atas, kamu bisa melihat semua job yang sedang berjalan, job selesai, error, dan statistik lainnya.

Konfigurasi Dasar Laravel Horizon

Setelah Laravel Horizon terinstall, kamu bisa langsung menggunakannya dengan beberapa config. Horizon punya file config sendiri di Laravel setelah berhasil diinstall, dan kamu bisa menyesuaikannya sesuai kebutuhan aplikasi.

1. Setting Konfigurasi di config/horizon.php

Laravel Horizon punya file konfigurasi di config/horizon.php, file tersebut akan otomatis dibuat ketika horizon diinstall. Di sini kamu bisa setting beberapa opsi, seperti jumlah worker, queue yang digunakan, dan lain-lain.

Beberapa setting yang penting di file ini antara lain:

  • Environments: Kamu bisa atur Horizon untuk bekerja sesuai environment (misalnya local, production, dll).
  • Supervisor Settings: Supervisor ini yang bakal mengatur worker dan menjalankan job di queue. Kamu bisa set jumlah worker, balancing, dan lain-lain.

Contoh config:

'environments' => [ 'production' => [ 'supervisor-1' => [ 'connection' => 'redis', 'queue' => ['default'], 'balance' => 'auto', 'processes' => 10, 'tries' => 3, ], ], 'local' => [ 'supervisor-1' => [ 'connection' => 'redis', 'queue' => ['default'], 'balance' => 'simple', 'processes' => 3, 'tries' => 3, ], ], ],
  • connection: Menentukan koneksi yang digunakan, umumnya menggunakan redis.
  • queue: Tentukan queue yang akan diproses.
  • balance: Mengatur balancing load antara worker. Opsi auto biasanya disarankan di production.
  • processes: Jumlah worker yang akan digunakan.
  • tries: Berapa kali percobaan jika job gagal.

2. Mengelola Worker di Production

Kalau kamu ingin menjalankan Horizon secara background di production, kita bisa menggunakan supervisor system seperti Supervisor (Linux). Ini akan memastikan Horizon tetap berjalan bahkan setelah server restart.

Contoh konfigurasi Supervisor untuk Horizon (di Linux):

  1. Buka konfigurasi Supervisor:
    sudo nano /etc/supervisor/conf.d/horizon.conf
  2. Tambahkan konfigurasi seperti di bawah ini:
    [program:horizon] process_name=%(program_name)s command=php /laravel-path/artisan horizon autostart=true autorestart=true user=www-data redirect_stderr=true stdout_logfile=/laravel-path/storage/logs/horizon.log
  3. Jangan lupa update dan jalankan supervisor agar dapat memperbarui konfigurasinya:
    sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start horizon

Dengan config di atas, supervisor akan menjaga agar Horizon tetap berjalan di background dan otomatis restart jika terjadi error.

Tips Menggunakan Laravel Horizon

  • Monitor Worker Performance: Kalau job kamu banyak, coba setting worker biar performa aplikasi tetap stabil. Kamu bisa atur worker pool langsung di file konfigurasi Horizon.
  • Setting Notifikasi: Biar lebih waspada, aktifkan notifikasi buat job yang gagal. Ini bisa banget bantu kamu langsung tahu kalau ada masalah.
  • Pengelompokan Queue: Kalau ada job yang penting, seperti proses pembayaran, kamu bisa grup job ini di queue prioritas biar diproses duluan.

Artikel ini dibaca sebanyak325kali

About Author

Crafting Code & Ideas | Software Engineer | Tech Explorer & Growth

Brian Harris

Follow me on