与主事件循环并行运行自定义循环

时间:2017-04-20 13:04:26

标签: tornado

如何运行无限循环

# custom infinite loop
while 1:
    print("Hello\n")

tornado主要事件循环并行?

if __name__ == "__main__":
    # Main event loop
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

2 个答案:

答案 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