2017-04-20 1 views

Répondre

0

Vous pouvez l'exécuter dans un autre thread (et gérer la synchronisation associée). Ou vous pouvez en faire un coroutine et le faire céder à l'IOLoop périodiquement (probablement la version réelle de votre code est en train de dormir au lieu de simplement en boucle, vous utiliserez await tornado.gen.sleep() dans ce cas.)

0

Je ne sais pas savoir si c'est la réponse optimale, mais l'exécution de chaque boucle sur un fil a bien fonctionné pour moi

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