[Code Review] Tarih Değeri Nereden Gelmeli?

Kod geliştirmesi yaparken belirli kayıtları çekmek için o anki zamanı parametre olarak göndeririz. Bir çok uygulamada bununla ilgili bir sorun yaşanmaz ancak senkron olmayan ve özellikle fiziksel olarak aynı olasa da sanal olarak farklı yerlerde olan sunucuların saatlerinin farklı olmasından ötürü zamanlama hataları olabilir. Şirkette yaşadığım bir sorundan yine yola çıkıyorum…

Siparişler siteden verildikten sonra belirli bir zamana ihtiyacı bulunuyor tam olarak işlemlerinin bitmesi için. Başka bir makine de bu tablolar bütününü okuyarak yeni olan siparişlerin çekilmesi işlemi yapılıyor. Yeni siparişleri alan uygulama parametre olarak UTC time üzerinden 15 saniye öncesini çekmeye çalışıyor ve bazı zamanlar siparişlerin bir kısmı hatalı olarak geliyor ve bunları hatalı olarak işaretleyip yoluna devam ediyor. Bir sonraki kontrolde bu siparişler tekrar alınıyor ve işleniyor.

İlk incelemelerde dikkat etmediğimiz bir nokta olarak makinelerin saatlerinin farklı olması sorun olarak karşımıza çıktı. Bunu çözmek için alternatifler ararken aklımıza çok daha basit bir çözüm geldi. Sorgularda tarih kontrolü olan kısımları veri tabanına indirdik ve bu sayede veri tabanı kendi saati üzerinden daha doğru bir kontrol yapmış oldu.

Bu sefer hiç bir görsel koyamadım ve bu yüzden biraz sıkıcı bir yazı görünümünde olabilir. Ama kod kontrolü yaparken dikkat edilmesi gerektiğini düşündüğüm ince bir nokta.

Yorumlayın