Bir Laravel projesinde çalışıyordum — standart bir şey, veritabanı kuyruk sürücüsü, paylaşımlı hosting, sıradan bir durum.
Ödeme işlemi sessizce başarısız olmaya başladı.
Hiçbir uyarı yok. Hiçbir gösterge paneli yok. Sadece faturaların neden gönderilmediğini soran bir müşteri.
failed_jobs tablosunu açtım ve ham JSON yığın izlerini okumaya başladım. Sonrasında php artisan queue:work komutunu terminale bakarak çalıştırdım. Ardından, işler tablosunu sorgulamak için hızlıca bir geçici script yazdım.
Bu durumu hepimiz biliyoruz.
Aşikar çözüm Laravel Horizon’dır — güzel bir gösterge panosuna sahip ve onu birçok kez kullandım. Ancak Horizon, Redis gerektiriyor. Bu proje, Redis olmayan paylaşımlı bir host üzerinde çalışıyordu. Ve aslında, küçük bir proje için kuyruk görünürlüğünü sağlamak adına Redis kurmanın daha fazla iş yükü olacağını düşündüm.
Bu yüzden birkaç akşam, hafif bir çözüm oluşturdum.
Ne Yaptım
Ne Yaptım
Hafif Kuyruk İncelemesi — veritabanı kuyruk sürücüsünü kullanan Laravel uygulamaları için bir hata ayıklama gösterge paneli.
Redis yok. Horizon yok. Sadece mevcut jobs ve failed_jobs tabloları.
İşte sana sunduğu özellikler:
- Bekleyen işler — kuyrukta bekleyen her şeyi, açılabilir yük denetimi ile görüntüle
- Başarısız işler — tam istisna mesajları, yığın izleri, tekrar deneme veya tekil ya da toplu olarak silme
- Başarılı işler — her iş için yürütme süresi (renk kodlu yeşil/turuncu/kırmızı) ve bellek kullanımı
- Gösterge paneli istatistikleri — bekleyen sayısı, başarısız sayısı, ortalama yürütme süresi, en çok başarısız olan iş
- Filtreler — herhangi bir sayfayı kuyruk adı veya iş sınıfına göre filtrele
- Güvenlik uyarıları — kimlik doğrulama middleware’ı eklemeyi unuttuysanız veya kimlik doğrulama ayarlandıysa ancak giriş rotası yoksa, terminalde uyarılar
İşleyişi
İşleyişi
Bu paket, Laravel’in yerleşik kuyruk olaylarına entegre olur — ekstra konfigürasyon, ek tablo gerektirmez; yalnızca küçük bir metrik tablosu:
| Olay | Kaydedilenler |
|---|---|
JobProcessing | iş sınıfı, kuyruk adı, started_at |
JobProcessed | execution_time_ms, memory_usage_mb, durum = başarılı |
JobFailed | execution_time_ms, istisna mesajı, durum = başarısız |
Bu olaylar, php artisan queue:work bir işi işlerken otomatik olarak ateşlenir. Nelerin çalıştığını, ne kadar sürdüğünü ve hangi işlerin başarısız olduğunu tam olarak görebilirsiniz — uygulama kodunuzun tek bir satırını bile değiştirmeden.
2 Dakikada Kurulum
2 Dakikada Kurulum
composer require abinashbhatta/lightweight-queue-inspector
php artisan migrate
/queue-inspector adresine gidin. İşte bu kadar.
Paket otomatik olarak keşfedilir – config/app.php dosyasında bir şey kaydetmenize gerek yoktur.
Her zaman prodüksiyonda koruyun:
// config/queue-inspector.php
'middleware' => ['web', 'auth'],
Bu Kime Yönelik?
Bu Kime Yönelik?
Zaten Horizon ve Redis kullanıyorsanız — Horizon’ı kullanmaya devam edin, mükemmel.
Bu, diğerleri içindir:
- Paylaşımlı hosting’in üzerine küçük veya orta ölçekli projeler
- İç araçlar ve yönetim panelleri
- Redis’in fazla olduğunun düşünüldüğü erken aşama uygulamalar
- Şu anda kuyruklarının ne yaptığını görmek isteyen herkes
Sırada Ne Var?
Sırada Ne Var?
Otomatik yenileme, iş başarısızlığı durumunda e-posta/Slack uyarıları, karanlık mod ve zamanla iş trendlerini gösteren grafikler eklemeyi planlıyorum. Tam yol haritası GitHub’da mevcut.
GitHub: https://github.com/abinash889/lightweight-queue-inspector
Packagist: https://packagist.org/packages/abinashbhatta/lightweight-queue-inspector
Eğer daha önce aynı durumda kaldıysanız — uygunsuz bir saatte kuyrukları körlemesine hata ayıklama yapıyorsanız — ne düşündüğünüzü bilmek isterim. Projeleriniz için nasıl daha faydalı hale getirebiliriz?
Kaynak: Orijinal Makale



