0

登録したばかりなので、この質問をすることができます。

現在、クラスが 5 分ごとに複数回更新されるのを防ぐ次のコードがあります。

now = datetime.now()
delta = now - myClass.last_updated_date
seconds = delta.seconds

if seconds > 300
    update(myClass)     
else
    retrieveFromCache(myClass)

myClass を 5 分間に 1 回だけではなく 2 回更新できるように変更したいと思います。

myClass が更新された過去 2 回を格納するリストを作成し、if ステートメントと比較することを考えていましたが、その方法ではコードが複雑になり、読みにくくなることが懸念されます。

これを行う簡単な方法はありますか?

4

1 に答える 1

1

単純なカウンターでそれを行うことができます。概念はget_update_count、クラスが更新される頻度を追跡します。

if seconds > 300 or get_update_count(myClass) < 2:
    #and update updatecount
    update(myClass)     
else:
    #reset update count
    retrieveFromCache(myClass)

どのように一意に識別するのかわかりませんmyClass.

update_map = {}

def update(instance):
     #do the update
     update_map[instance] = update_map.get(instance,0)+1

def get_update_count(instance):
     return update_map[instance] or 0
于 2013-01-30T23:57:28.850 に答える