扭曲的时间计数器
我正在尝试用Twisted写一个计时器,当我请求GET /timer时,它会返回当前的计数。第一次请求会启动计时器。但不幸的是,每次我请求/timer时,它都会重新开始一个新的计时器,从0开始。有没有人知道怎么修改下面的代码,让它在每次GET /timer请求时不创建新的计时器?
from twisted.internet import reactor
from twisted.web.resource import Resource
class TimeCounter(Resource):
def __init__(self):
self.value = 0
def test(self):
self.value += 1
print self.value # debug
reactor.callLater(1, self.test)
def render(self, request):
self.test()
return str(self.value)
resource = TimeCounter()
提前谢谢大家。
1 个回答
2
试试这个。我几个月前测试过,效果很好。它会在客户端创建一个会话cookie。
class MyResource(Resource):
# ...
def render(self, request):
session = request.getSession()
if not hasattr(session, 'count'):
session.count = itertools.count()
request.write(u"Count is %s" % (session.count.next(),))