Это меня немного озадачивает. Довольно неожиданно для торнадо и нарезания резьбы на питоне, поэтому я мог быть совершенно не знаком с тем, что я пытаюсь сделать здесь.
Наверное, лучше всего начать с некоторого упрощенного кода:
class Handler(tornado.web.RequestHandler):
def perform(self):
#do something cuz hey, we're in a thread!
def initialize(self):
self.thread = None
@tornado.web.asynchronous
def post(self):
self.thread = threading.Thread(target=self.perform)
self.thread.start()
self.write('In the request')
self.finish()
def on_connection_close(self):
logging.info('In on_connection_close()')
if self.thread:
logging.info('Joining thread: %s' % (self.thread.name))
self.thread.join()
Моя проблема в том, что on_connection_close
никогда не набирается, запросы обрабатываются просто отлично. Во-вторых, я делаю что-то ужасное, вводя таким образом поток?