我处于一个奇怪的情况,我必须在完全由 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 上工作,所以我认为这应该没问题。会不会有什么不可预见的后果?提前致谢。