来源于stackoverflow的问题(http://stackoverflow.com/questions/11128923/tornado-equivalent-of-delay)
另外注意add_timeout的参数deadline,是以当前时间为开始时间.
REQ:tornado equivalent of delay
RESP:
gen风格
import time
from tornado.ioloop import IOLoop
from tornado.web import RequestHandler
from tornado import gen
class MyHandler(RequestHandler):
@asynchronous
@gen.engine
def get(self):
self.write("sleeping .... ")
self.flush()
# Do nothing for 5 sec
yield gen.Task(IOLoop.instance().add_timeout, time.time() + 5)
self.write("I'm awake!")
self.finish()
callback风格
class MyHandler(RequestHandler):
@asynchronous
def get(self):
self.write("sleeping .... ")
self.flush()
IOLoop.instance().add_timeout(time.time() + 5, self._process)
def _process(self)
# Do nothing for 5 secs
self.write("I'm awake!")
self.finish()