Я использую торнадо 2.0, и иногда, когда я вызываю self.finish () для завершения асинхронного запроса, я получаю IOError с сообщением «Поток закрыт». Похоже, это происходит, когда клиент завершает запрос (т. Е. Путем перехода на другую страницу) до того, как сервер вызовет finish (). Это ожидаемое поведение и что-то, что мой код просто должен обработать? Я обнаружил эту ошибку год назад, которая предполагает, что это НЕ то, что должен обрабатывать клиентский код: https://github.com/facebook/tornado/issues/81. Указывает ли это на ошибку в моем коде, и если да, то каковы вероятные причины?
StackTrace:
Traceback (most recent call last):
File "my_code.py", line 260, in my_method
self.finish()
File "/usr/lib/python2.6/site-packages/tornado/web.py", line 634, in finish
self.request.finish()
File "/usr/lib/python2.6/site-packages/tornado/httpserver.py", line 555, in finish
self.connection.finish()
File "/usr/lib/python2.6/site-packages/tornado/httpserver.py", line 349, in finish
self._finish_request()
File "/usr/lib/python2.6/site-packages/tornado/httpserver.py", line 372, in _finish_request
self.stream.read_until(b("\r\n\r\n"), self._header_callback)
File "/usr/lib/python2.6/site-packages/tornado/iostream.py", line 137, in read_until
self._check_closed()
File "/usr/lib/python2.6/site-packages/tornado/iostream.py", line 403, in _check_closed
raise IOError("Stream is closed")
IOError: Stream is closed