关于@ tornado.web.asynchronous真的很困惑

时间:2014-12-08 14:30:01

标签: python tornado

我们什么时候应该添加这个装饰器?添加这个装饰器有什么好处?龙卷风之间的区别是什么?

如果有人能给我一些细节,我将非常感激

1 个答案:

答案 0 :(得分:1)

@asynchronous是致电self.finish()的承诺,而不是让请求自动完成。这允许您通过回调使用异步操作。

@gen.coroutine(和@gen.engine,大部分已过时)赋予yield关键字特殊含义,允许您通过期货和任务使用异步操作。

使用@gen.coroutine关键字时使用yield,使用回调时使用@asynchronous。在Tornado 3.0中,有时需要同时使用它们(并先放置@asynchronous),但是由于Tornado 3.1没有理由这样做,你应该只使用其中一个。