spatie/laravel-rate-limited-job-middleware, Laravel uygulamalarında iş kuyruğuna eklenen işlerin (job) belirli bir hız sınırına tabi tutulmasını sağlayan bir middleware paketidir. Bu paket, özellikle harici API'lere istek gönderen veya yoğun kaynak tüketen işlerin kontrollü bir şekilde çalıştırılmasına olanak tanır. Paket, Laravel'in kuyruk altyapısıyla entegre çalışır ve işlerin işlenme hızını sınırlayarak sistem kaynaklarının aşırı yüklenmesini önler.
Hangi ihtiyaçlarda değerlendirilebilir?
- Harici API'lere yoğun istek gönderen Laravel uygulamaları
- Kuyruk işlemlerinde hız sınırlaması gerektiren sistemler
- Kaynak tüketimini kontrol altında tutmak isteyen geliştiriciler
Yaygın kullanım alanları
API İstek Limitlerini Yönetme
Üçüncü taraf bir API'nin istek limiti varsa, bu paket ile kuyruktaki işlerin saniyede veya dakikada belirli bir sayıda işlenmesini sağlayarak limit aşımını önleyebilirsiniz.
E-posta Gönderimlerini Hız Sınırlama
Toplu e-posta gönderimlerinde, SMTP sunucusunun kabul edebileceği hızı aşmamak için işleri hız sınırlayıcı ile kontrol edebilirsiniz.
Veritabanı Yoğunluğunu Azaltma
Ağır veritabanı işlemleri yapan işleri belirli bir hızda işleyerek veritabanı sunucusunun aşırı yüklenmesini engelleyebilirsiniz.
İncelenmesi gereken noktalar
- Paketin çalışabilmesi için Laravel'in kuyruk altyapısının (queue) kurulu ve çalışır durumda olması gerekir.
- Hız sınırlama ayarlarının doğru yapılandırılması önemlidir; aksi takdirde işlerin işlenmesi beklenenden uzun sürebilir.
- Paket, yalnızca Laravel uygulamaları için tasarlanmıştır; diğer PHP framework'leriyle uyumlu değildir.
WordPress.org
Kurulum ve geliştirme notları
Paketin kurulumu Composer ile yapılır. Resmi dokümantasyonda kurulum adımları yer alır.
- 1Composer kullanarak paketi projeye ekleyin: composer require spatie/laravel-rate-limited-job-middleware
- 2Paketin servis sağlayıcısını config/app.php dosyasına kaydedin (Laravel 5.5 ve üzeri için otomatik keşif geçerlidir).
- 3Kullanmak istediğiniz iş sınıfına middleware tanımlayın ve hız limiti ayarlarını yapılandırın.
Geliştirme aşamasında, iş sınıflarınıza middleware ekleyerek hız sınırlama kurallarını tanımlarsınız. Paket, Laravel'in RateLimiter sınıfını kullanarak limitleri yönetir.
- İş sınıfına middleware olarak eklenir ve limit anahtarı belirtilir.
- RateLimiter ile saniye/dakika bazında limit tanımlanabilir.
- Kuyruk işçileri (queue workers) üzerinde herhangi bir değişiklik gerektirmez.
Hazır çözümün ötesinde
Özel geliştirme ne zaman değerlendirilebilir?
ZeplinGo olarak, Laravel tabanlı projelerinizde iş kuyruğu mimarinizi analiz ediyor, hız sınırlama ihtiyaçlarınızı belirliyor ve size özel çözümler geliştiriyoruz. Bu paketin entegrasyonu veya alternatif yaklaşımlar için kapsam belirleme çalışması yapabiliriz.
Ücretsiz ön çalışma isteyin →Değerlendirme soruları
Bu paket hangi Laravel sürümleriyle uyumludur?
Paketin resmi açıklamasında sürüm uyumluluğu belirtilmemiştir. Ancak paket, Laravel'in kuyruk ve rate limiter altyapısını kullandığı için genellikle Laravel 6 ve üzeri sürümlerle uyumlu olduğu varsayılabilir. Kesin uyumluluk için paketin dokümantasyonunu incelemenizi öneririz.
Bu paket ile hangi hız sınırlama yöntemleri kullanılabilir?
Paket, Laravel'in RateLimiter sınıfını kullanarak saniye veya dakika bazında limit tanımlamanıza olanak tanır. Örneğin, bir işin saniyede en fazla 5 kez çalışmasını sağlayabilirsiniz.
Paket ücretli midir?
Hayır, bu paket açık kaynaklıdır ve Packagist üzerinden ücretsiz olarak dağıtılmaktadır. Ancak ZeplinGo olarak bu paketin kullanımıyla ilgili danışmanlık ve özel geliştirme hizmetleri sunabiliriz.