2015-11-11 4 views
1

Мне нужно реализовать простой сервис с помощью Tornado. Когда мой сервис запускается, он создает второй поток, и мне нужно запустить ioloop Tornado в этом потоке, потому что между тем основной поток занят какой-то другой работой. Можно ли получить экземпляр ioloop с помощью IOLoop.current() во втором потоке или есть другой способ получить экземпляр ioloop для потока? Документы говорят, что current() возвращает экземпляр ioloop основных потоков, если в текущем потоке не работает ioloop. Я немного запутался в этом вопросе.Tornado Ioloop in thread

ответ

1

Я вижу, что документация is сбивает с толку. Когда начинается ваш фоновый поток, запустить это на фоне резьбы:

io_loop = IOLoop() 
io_loop.make_current() 

После этого IOLoop.current(instance=False) на фоновом потоке будет возвращать специальный IOLoop потока.

+0

В этом примере кода важно заметить, что объект 'IOLoop' создается в том же потоке, где он выполняется. –

+0

Спасибо, все работает отлично! – bnopne

Смежные вопросы