Closed d-hayashi closed 3 years ago
一応色々調べてみたんですが,未だに「何故ファイルを配信する処理にスレッドが占有されてしまうのか」が分かっておらず... responder やら Starlette のソースコードを見てみても,ネットワークストリームを通して通信する部分は非同期処理になっているようで,仮にファイル送信中にリクエストが来ても,それをファイルの送信と並行して処理できるように思えます この辺りに関して,理解できそうな記述ご存知でしょうか?
よくよく調べてみたら単純に _shout_stream
関数の中で非同期処理に対応していない open()
関数を使っていたがためにファイルのダウンロード部分が非同期処理になっていなかったのが原因でした。。
(参考) https://www.twilio.com/blog/working-with-files-asynchronously-in-python-using-aiofiles-and-asyncio
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: d-hayashi, WatanabeToshimitsu
The full list of commands accepted by this bot can be found here.
The pull request process is described here
What?
Fix dataware-tools/dataware-tools#69
_shout_stream
was not working asynchronouslyWhy?
To prevent request timeouts