需要有关龙卷风协程的帮助
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)
我是 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)