見出し画像

日誌 2023/10/24 (火)

今日から毎朝、公開直近の案件のスタンドアップ mtg をやることに。そんな長いこと話すわけではないものの、お互いの行動や考えに対しての解像度が上がるので良いなと思った :-)

ちょっと気になることがあって FlaskWerkzeugWSGI まわりのソースコードを追いかけてみた。以下ざっくり追いかけた内容。

  • Flask#run は werkzeug.serving.run_simple のラッパー。

  • run_simple は自前で用意した WSGI サーバを起動する。

    • threaded=True で threading.Thread を使って並列化。

    • processes=N, N>1 で os.fork が使えれば並列化。

    • threaded と processes=N, N>1 は共存できない。どちらかひとつ。

  • 起動される WSGI サーバは http.server.HTTPServer のサブクラス。

そしてその http.server はドキュメントページの冒頭にもあるように、基本的なセキュリティしか実装してないから本番環境で使うのはオススメしないよとのことなので、 Flask#run や werkzeug の run_simple も同じく時と場合を選んで使おうってことすなー。今だと gunicorn 経由で Gevent や eventlet 使うのが良いんやろか? ASGI にしなさいってのは一旦置いといて。

ひさびさに色んなトコロのソースコードを飛び回って読んだら楽しいけど疲れた。けど頭の体操になって楽しい :-)

この記事が気に入ったらサポートをしてみませんか?