다음은 기본적인 처리기입니다. 난 단지 이미지를 서버로 보내고 요청이 완료된 후에 redis에 쓰고 싶지만 아래 코드를 실행하면 on_finish가 호출되지 않는다. self.finish()
가 호출되지 않는 한Twisted Cyclone - 요청이 완료된 후 redis에 쓰는 방법
import cyclone.web
import cyclone.redis
from twisted.internet import defer
from twisted.internet import reactor
tt = cyclone.redis.lazyConnectionPool()
class PixelHandler(cyclone.web.RequestHandler):
@cyclone.web.asynchronous
def get(self):
qs = qs_decode(self.request.query)
self.set_header('Content-Type', 'image/gif')
self.write(pixel)
redisPixelWrite(remote_ip)
#self.finish()
def on_finish(self):
t = yield tt.multi()
yield t.set('key', 'value')
r = yield t.commit()
print "commit=", repr(r)