0

刚刚注册,所以我可以问这个问题。

现在我有这段代码可以防止一个类每五分钟更新一次以上:

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

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

我想修改它,允许 myClass 每 5 分钟更新两次,而不是只更新一次。

我正在考虑创建一个列表来存储 myClass 更新的最后两次,并与 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 回答