在tornado中是否有用于延迟函数的等效命令,而不会影响主进程休眠(因此,即使主线程终止新的函数调用,回调也会执行)
发布于 2012-06-21 17:24:45
试试这个:
import time
from tornado.ioloop import IOLoop
from tornado.web import RequestHandler, asynchronous
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()
摘自here。
发布于 2015-02-12 09:29:55
请注意,从4.1开始,他们添加了一个gen.sleep(delay)
方法。
所以
yield gen.Task(IOLoop.instance().add_timeout, time.time() + 5)
就会变成
yield gen.sleep(5)
发布于 2013-10-25 09:10:04
可能是多余的
我喜欢回调风格
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()
https://stackoverflow.com/questions/11128923
复制相似问题