Küçük işletme yazılımında zamanlanmış işler: cron ne zamana kadar yeter, kuyruğa ne zaman geçmeli?
Son iki ayda işler değişti. Toptancı müşterim pazaryerlerine de satmaya başladı ve fiyat güncellemesi artık günde bir değil saatte bir çalışmak zorunda. Güncelleme bazen bir saatten uzun sürüyor ve bir sonraki cron tetiklendiğinde ilki hâlâ çalışıyor. İki kez aynı ürüne çakışan fiyat yazıldı. Geçici çözüm olarak dosya kilidi koydum, ikinci süreç kilidi görünce çıkıyor. Bir de pazaryeri API'si zaman zaman hata dönüyor ve cron işi o noktada ölüyor; tekrar denemeyi kendim yazmam gerekti.
Şimdi kendime soruyorum: bu noktada bir iş kuyruğuna geçmenin zamanı geldi mi? Kafamdaki seçenekler şunlar. Birincisi, Redis üzerine kurulu bir kuyruk kütüphanesi kullanmak. İkincisi, zaten PostgreSQL kullandığım için veritabanı tablosunu kuyruk gibi kullanan bir çözüm. Üçüncüsü, hiçbirine dokunmayıp cron'u daha akıllı hale getirmek: kilit, tekrar deneme, durum tablosu.
Benim tereddüdüm bakım yükü. Bu müşterilerin hiçbirinde ayrı bir sistem yöneticisi yok, sunucuyla ben ilgileniyorum. Redis eklemek demek izlenecek bir servis daha, yedeklenecek bir şey daha demek. Öte yandan kendi yazdığım tekrar deneme ve kilit mekanizması da zamanla büyüyüp bir kuyruğa benzemeye başladı zaten, sadece daha kötü bir kuyruğa.
Benzer ölçekte çalışan arkadaşlar nerede çizgi çekiyor? Günde kaç iş, kaç farklı iş türü olunca kuyruğa geçtiniz? Ya da hâlâ cron'la ilerleyip pişman olmayan var mı?



@damon