我处于一种奇怪的情况,必须在完全由Tornado构建的系统中使用Twisted。它们可以共享相同的IOLoop,因此我知道它们可以一起工作。我的问题是,我能否安全地在同一个函数中使用它们的协程装饰器?例如:
import tornado.platform.twisted
tornado.platform.twisted.install()
...
@gen.engine
@defer.inlineCallbacks
def get(self):
...
a = yield gen.Task(getA) # tornado
b = yield proxy.callRemote(getB) # twisted
...
defer.returnValue(a + b) # twisted
他们在同一个IOLoop上工作,所以我认为这应该没问题。但是是否会有任何意想不到的后果?谢谢。