需要有关龙卷风协程的帮助

Need help on tornado coroutines

我是 python 和龙卷风的新手。我正在尝试使用协程进行一些操作。

def doStuff(callback):
    def task():
        callback("One Second Later")
    Timer(1,task).start()

@gen.coroutine
def routine1():    
    ans = yield gen.Task(doStuff)
    raise gen.Return(ans)

if __name__ == "__main__":
    print routine1()

我正在尝试获取 doStuff() 函数的结果,我希望它是 "One Second Later"。但它不起作用。任何帮助,将不胜感激。谢谢

可能发生的情况是,您还没有启动 IOLoop,也没有在脚本退出之前等待协程完成。您可能会注意到您的脚本在几毫秒内运行,而不是像它应该的那样暂停一秒钟。这样做:

if __name__ == "__main__":
    from tornado.ioloop import IOLoop
    print IOLoop.instance().run_sync(routine1)