私のセットアップは、PostgreSQLとRedisデータベースを持つFlaskアプリに基づいています。さらに、ワーカープロセスは、電子メールの送信などの非同期タスクを処理するために開始されます。私はGunicornを使用して複数のアプリプロセスを作成しています。アプリプロセスからワーカープロセスへのジョブの受け渡しは、Redisを介して行われます。
問題は、同じコードに基づいているにもかかわらず、ワーカープロセスを別のコンテナーで開始する必要があるかどうかです。現在、私は関連するビットで開始スクリプトを使用しています:
gunicorn --bind=0.0.0.0:8000 --workers=3 manage:app &
python -u manage.py run_worker
また、それらを分離する必要がある場合、どのようにして、共通のファイルシステムコンテナーを確実に再利用することができますか?さらに、メインアプリまたはワーカープロセスでGunicornをスケーリングする場合、コンテナーの追加インスタンスを作成するか、コンテナー内のプロセス数を増やす必要がありますか?