【发布时间】:2010-02-18 13:00:02
【问题描述】:
我已经创建了计算页面浏览量的模型:
class RequestCounter(models.Model):
count = models.IntegerField(default=0)
def __unicode__(self):
return str(self.count)
为了增加我使用的计数器:
def inc_counter():
counter = RequestCounter.objects.get_or_create(id =1)[0]
counter.count = F('count') + 1
counter.save()
然后我在我的页面上显示页面浏览量,它工作正常。 但现在我需要将我的计数器缓存一段时间。我用:
def get_view_count():
view_count = cache.get('v_count')
if view_count==None:
cache.set('v_count',RequestCounter.objects.filter(id = 1)[0],15)
view_count = cache.get('v_count')
return view_count
在此之后,我将 get_view_count 的结果传递给我的模板。
所以我希望我的计数器现在会静止 15 秒,然后更改为新值。但实际上,情况并非如此:当我从我的虚拟 ubuntu 中测试它时,它会从 55 跳到 56,15 秒后它会发生变化,现在从 87 跳到 88。 这些值始终是交替的,并且它们彼此之间没有太大差异。 如果我从 Windows 本地尝试此操作,则计数器似乎没问题,直到我尝试打开的不仅仅是浏览器。 不知道该怎么办。您知道可能是什么问题吗?
附言我尝试在模板中使用缓存 - 并收到了相同的结果。
【问题讨论】: