Arkadaşlar merhaba.
Laravelde yeniyim. Bir uygulama geliştiriyorum.
Bir tane uzun sürebilecek bir işlem var. O sebeple bunun asenkron yapılması lazım.
Laravel queue ile yapmayı denedim ama çalışmıyordu. 2 gündür uğraşıyorum. Meğer her queue eklendikten sonra manuel olarak "php artisan queue:work" ile çalıştırılması lazımmış.
Bunun çözümü yok mu? Kullanıcı bir işlem başlattığı zaman asenkron işlem yapılmalı ve eventlar aracılığı ile güncel durum websocket üzerinden yayınlanmalı. Ben de react tarafında yayını dinleyip yazdıracağım.
Yapay zekaya soruyorum fakat çok saçma şeyler yaptırıyor akıl karı değil.
Eğer böyle bir şey mümkün değilse uğraşmayayım boşuna.
Laravel Asenkron İşlemler
9
●224
- 27-04-2025, 00:14:06
- 27-04-2025, 00:19:41sacilannurlar adlı üyeden alıntı: mesajı görüntüle
- 27-04-2025, 00:22:34Srylius adlı üyeden alıntı: mesajı görüntüle
- 27-04-2025, 00:30:37sacilannurlar adlı üyeden alıntı: mesajı görüntüle
- 27-04-2025, 00:42:01sacilannurlar adlı üyeden alıntı: mesajı görüntüle
- 27-04-2025, 21:27:49memu adlı üyeden alıntı: mesajı görüntüle
QUEUE_CONNECTION = database şu anda. Database olduğu için sürekli bunu açık tutacak "php artisan queue:work" komutu çalışması lazım.
Localde çalışırken bu sürekli kapanıyor ve manuel olarak çalıştırılması gerekiyor.
Sizin dediğiniz supervisor vb. eklentiler ise bunu sunucu ortamında daha otomatikleştiriyor ve monitöre döküyor anladığım kadarı ile.
Geliştirme aşamasında .env de sync olarak da ayarlanabilir queue conection belki ama gerek yok. asenkron yapıyı bozuyor.
Bu arkadaş çalışmadığı zaman ne eventlar yayınlanıyor ne de websocket sağlam çalışıyor.
Aynı problemi ileride yaşayan olursa diye detaylı yazmak istedim. - 27-04-2025, 21:35:19sacilannurlar adlı üyeden alıntı: mesajı görüntüle
Normaldephp artisan queue:work
komutunun devamlı çalışması lazım ama bazen çeşitli nedenlerle bu komutun çalışması durabilir. Mesela server restart etmeniz gerektiğinde bu komutu tekrar çalıştırmanız gerekir. Supervisor bir process manager yazılımılır ve onun sayesinde bu ve benzer komutların devamlı çalışmasını garanti altına almış olursunuz. Laravel dokumanında detayları bulabilirsiniz: https://laravel.com/docs/12.x/queues...-configuration
Horizion ile ise queue'ları kolayca yönetebilir, önceliklerini ayarlabilir ve çalışma prensiplerini belirleyebilirsiniz. Detaylar: https://laravel.com/docs/12.x/horizon - 27-04-2025, 21:38:19memu adlı üyeden alıntı: mesajı görüntüle
- 27-04-2025, 21:52:37sacilannurlar adlı üyeden alıntı: mesajı görüntüle
Supervisor ise ayrı bir yazılım. Kurulum için serverınıızın işletim sistemine göre kurumları kendi sitesinden detaylı olarak öğrenebilirsiniz: https://supervisord.org/installing.html
Mesela ubuntu için sudo apt-get install supervisor ile kurabilirsiniz.
Production için supervisor gibi bir process monitor yazılımı mutlaka gerekir. Çünkü queue:work işleminin devamlı çalışması gerekir ve bunun durmasına sebep olan pek çok neden vardır. Supervisor'ın laravel ayarları da yine paylaştığım linkte mevcut. https://laravel.com/docs/12.x/queues...-configuration