Торнадо: Могу ли я запустить код после вызова self.finish () в асинхронном RequestHandler?
Я использую Торнадо. У меня есть куча асинхронных обработчиков запросов. Большинство из них выполняют свою работу асинхронно, а затем сообщают о результатах этой работы пользователю. Но у меня есть один обработчик, задача которого - просто сказать пользователю, что его запрос будет обработан в какой-то момент в будущем. Я заканчиваю HTTP-соединение, а затем делаю больше работы. Вот простой пример:
class AsyncHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
def get(self, *args, **kwargs):
# first just tell the user to go away
self.write("Your request is being processed.")
self.finish()
# now do work
...
Мой вопрос: это законное использование Торнадо? Будет ли код после self.finish () работать надежно? У меня никогда не было проблем с этим раньше, но теперь я вижу проблему с ней в одной из моих сред разработки (не во всех). Здесь есть несколько обходных путей, которые я уже определил, но я хочу убедиться, что я не пропускаю что-то фундаментальное для жизненного цикла запроса в Tornado. Не кажется, что причина, по которой я не смогу запустить код после вызова self.finish (), но, возможно, я ошибаюсь.
Спасибо!