Bir sitede login olup update yapan otomasyonumda Scrapping uzun zaman aldığından sonraki istekler hata veriyordu. İşlem de saniyeler sürdüğü için kullanıcıyı bekletiyordu. Kuyruğa alma teknolojisiyle tanışma vaktim gelmişti.
RabbitMQ ya da Redis seçeneklerim vardı. RabbitMQ isminden dolayı sevimli gelse de popülerliği nedeniyle Redis tercih ettim. Dokümantasyon okumaya zamanım yok bu konuda doğal olarak windsurf’e yazdırıp chatgpt ile detaylandırdım. Redis’ten aldığı mesajı işlemek için celery worker’ı sürekli olarak aşağıdaki ile çalıştırmamı söyledi hem chatgpt hem de windsurf. Değişik promptlarla(lütfen bak, yine aynı hata başka bir çözüm olmalı :)) ) hata aldığımı söylediğim halde sonuç hep aşağıdaki komutta bitiyordu.
celery -A tasks worker –loglevel=info
“Sen,” dedim, “bi’ dur ChatGPT.” Aldım kodu, “Gel,” dedim Grok’a, “bu kod çalışmıyor, hata da bu!” Ve nihayet seçenekler arasında aşağıdaki değerli komut vardı; “pool=solo”. Solo neydi solo emekti!
celery -A tasks worker –pool=solo –loglevel=info
Solonun anlamı şu; eğer gerçek zamanlı bir uygulama değilse kullanıcıların isteklerini sıraya alarak sadece bir işlemi gerçekleştiriyor. 5 kullanıcı aynı anda istek attığında, son kullanıcıların istekleri zaman alabiliyor ama bu benim sistemimde önemli bir durum değil. Eğer yoğun istek olan bir sistemim olsaydı “–pool=prefork” kullanacaktım. Aynı anda dört kullanıcının isteğini de çalıştırabilirdim.
Prompt hatası da olabilir ama bazen ai’lar aynı şeyleri tekrar edebiliyorlar veya halüsinasyon durumları olabiliyor. Bu yüzden dokümantasyon okumaya üşenmemek veya arada başka ai’lara danışmakta fayda var.