2012-03-09 53 views

回答

4

IOLoop's source code和文档,add_callback只是寄存器被追加到一个列表后执行的回调函数。然后,在下一个IOLoop迭代中,它会调用每个回调(按FIFO顺序)。必须在有可用的时刻调用Add_callback,例如I/O事件。有关更多详细信息,请检查article

+0

我把add_timeout放在我的长轮询处理程序函数(装饰器@ tornado.web.asynchronous)的末尾,它工作正常,但它不是一个真正的实时处理程序。我用add_callback替换add_timeout,系统挂起! – jondinham 2012-03-09 12:37:36

+2

如果您正在某个地方进行长轮询,则必须多次调用add_timeout以“捕捉”事件,如本示例中所述http://hymloth.posterous.com/bringing-celery-and-tornado-together – hymloth 2012-03-09 13:41:47