2011-08-23 5 views
3

私はGET/timerを要求すると、現在のカウントを返すように、Twistedでタイムカウンタを書こうとしています。最初の要求でカウンタが開始されます。残念ながら、いつもリクエスト/タイマーで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() 

ありがとうございます。

答えて

2

これを試してください。私は数ヶ月前にこれをテストし、うまくいきました。クライアント上にセッションクッキーが作成されます。

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(),))