2012-09-27 7 views
6

新しいFlaskアプリケーションを組み込みのWebサーバーでテストすると、すべてが「シングルスレッド」でブロックされます。サーバーは別の要求を処理せずに1つの要求を処理することはできません。一度に1つの要求しか処理できません。Flask、並列リクエストのデプロイ

ウェブサービスをデプロイする場合、これは明らかに望ましくありません。どのように物事を並行して移動できるようにFlaskアプリケーションを配備するのですか?

コード内のスレッドの安全性と並行性(ロックされたオブジェクトの保護など)については、考慮すべき点がありますか?

答えて

5

私はgeventループでuWSGIを使用します。それがチケットです。実際には、これはブロッキングされているpy-redisをブロックしない方法です。

また、私はuWSGIを使用して、依然として多くの要求を受け入れながら応答後に要求を書き込みます。

+0

また.... nginxでスーパーバイザを使用してください。私は、プロセスごとに少なくとも1つのgeventループが必要です。 – Tampa

3

多くの良いオプションがあります。

は、これらのいずれもが私のためによく働いている、それをbehind Apache with mod_wsgiまたはbehind Nginx with uWsgi

を実行している:私は、最も人気のある2は、おそらくだと思います。

1

Nginx + gunicornを使用します。しかし、UWSGIは事実上の標準です。

関連する問題