Витой счетчик времени - PullRequest
3 голосов
/ 23 августа 2011

Я пытаюсь записать счетчик времени с помощью Twisted, чтобы при запросе GET / timer он возвращал текущий счетчик.Первый запрос запускает счетчик.К сожалению, всегда, когда я запрашиваю / таймер создает дополнительный новый счетчик, начиная с 0. Кто-нибудь знает, как настроить следующий код, чтобы он не создавал новый счетчик при каждом запросе GET / таймера)?

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 голосов
/ 24 августа 2011

Попробуй это. Я проверил это несколько месяцев назад, и это работало нормально. Он создаст файл 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(),))
...