Merhabalar laravel qeues bildiğiniz gibi paylaşımlı hosting'de sorun çıkarıyor.En erken dakikada 1 başlatılabiliyor ve bu bir sıkıntı. Komutu tekrara alırsanız da durmadan yeniden başlatıyor. Timeout vs gibi çözümler de tam istediğim karşılığı vermediği için kullanmak istemedim. Size kendimce bulduğum çözümü sonrasında da bu çözümü uygulamak için düzenlemem gereken framework dosyasını açıklayacağım. Sorunum bu dosyayı düzenlemiş olmam ve laravel güncellemelerinde üzerine yazılacak olması durumu. Bu durum sizce ne kadar sağlıklı olur? Bu dosyayı düzenlemek dışında bir çözümü olan var mı?
düzenlediğim dosya : \vendor\laravel\framework\src\Illuminate\Queue\Console\WorkCommand.php
Benim çözümüm şu şekilde: ana dizine bir dosya oluşturuyorum running.txt içerisi boş bir dosya. queue:run komutunu cron komutlarına giriyorum ve eğer bu dosya varsa ve son düzenlenme tarihi üzerinden 5 dk'dan az bir zaman geçmişse queue zaten çalışmakta olduğu için çalışmıyor ve tekrar etmesinden kurtulmuş oluyorum. Tabi bir de bu dosyanın güncellenme işlemi için dakikada 1 olacak şekilde scheduled task oluşturup bir Queue Job eklemesini istiyorum, bu job içinde bu dosyayı güncelletiyorum. Böylelikle Queue kendi süresini uzatmış oluyor ve eğer süresi uzamazsa tekrarlayan queue:run komutu işleme alınıyor bu sayede her saniye 1 queue komutu çalışır ve emirlerimi bekler halde oluyor. Ve işin güzel tarafı timeout ve limit verdiğimiz zamandaki gibi dakikada 1 işlem yapıp durmuyor.
Çözümde her şey çok güzel çalışıyor ama laravel framework dosyasını düzenlemiş olmak içime sinmedi. Önerilerinizi bekliyorum.