私は竜巻2.0を使用していますが、非同期要求を終了するためにself.finish()を呼び出すと、時折、IOErrorメッセージが表示されます。 "これは、サーバーがfinish()を呼び出す前にクライアントが要求を終了したとき(つまり、別のページにナビゲートすることによって)に起こるかのように見えます。これは期待された動作で、私のコードだけで処理する必要がありますか?私は1年前にこのバグを見つけました。これは、クライアントコードが何か処理されるべきではないことを示唆しています:https://github.com/facebook/tornado/issues/81。これは私のコードのバグを示していますか?その場合、原因は何でしょうか?竜巻IOError要求に応じてストリームが閉じています
スタックトレース:
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
ジョシュやあ、あなたがこれまでに解決策を手に入れましたこの?私は同じ事を経験しています。 –
私はしませんでした。私は今、self.finishを呼び出すたびにIOErrorsをキャッチします...最適かどうかは分かりませんが、問題が解消されます。 – josh