如何运行无限循环
# custom infinite loop
while 1:
print("Hello\n")
与tornado
主要事件循环并行?
if __name__ == "__main__":
# Main event loop
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
答案 0 :(得分:0)
您可以在另一个线程中运行它(并处理相关的同步)。或者你可以使它成为一个协程并定期让它产生IOLoop(可能是你的代码的真实版本正在休眠而不是繁忙循环;在这种情况下你会使用await tornado.gen.sleep()
。
答案 1 :(得分:0)
我不知道这是否是最佳答案,但在线程上运行每个循环对我来说效果很好。
import threading
application.listen(8888)
event_loop_thread = threading.Thread(target=tornado.ioloop.IOLoop.instance().start)
event_loop_thread.daemon = True
event_loop_thread.start()
custom_loop_thread = threading.Thread(target=custom_loop)
custom_loop_thread.daemon = True
custom_loop_thread.start()
while 1:
pass