まだ python2.5 ランタイムで実行される Appengine アプリがあります。つまり、シングル スレッドです。私は学校のクラスを持っています:
class School(db.Model):
...
dateformat=db.StringProperty(default='%a %e %b',indexed=False) # For bookings
timeformat=db.StringProperty(default='%l:%M%P',indexed=False) # For bookings
def date(self,t):
return time.strftime(self.dateformat,time.gmtime(t))
def datetime(self,bt,et=None):
return time.strftime(self.dateformat+' '+self.timeformat,time.gmtime(bt))+\
(time.strftime(' - '+self.timeformat,time.gmtime(et)) if et else '')
def time(self,t):
return time.strftime(self.timeformat,time.gmtime(t))
次に、学校が選択した形式で日付をフォーマットしたい場合は、次のようにします。
s=School.get_by_id(the_id)
date_string=s.date(the_timestamp)
ごくまれに、ちょうど 1 週間後の日付を取得します。したがって、「Wed 2 May」の代わりに「Wed 9 May」となります。これは、おそらく数万件のケースのうち、先週 3 回報告されています。すべて正確に 1 週間で、他に時差はありません。
私のコードのその部分は何年もの間何も変わっていないので、なぜこれが突然起こり始めるのか理解できません. シングル スレッドであるため、strftime で問題が発生することはありません。いずれにせよ、スレッドの問題に関するレポートは見つかりません。
何か案は?