扭曲的时间计数器

3 投票
1 回答
642 浏览
提问于 2025-04-17 00:13

我正在尝试用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(),))

撰写回答