3

次のような複数のプロセスを使用してuWSGIによって提供されるFlaskアプリケーションがあるとします。

uwsgi --socket 127.0.0.1:3031 --file flaskapp.py --callable app --processes 4

私のFlaskアプリは次のように構成されています。

/flaskapp
    app.py
    /db
        __init__.py
        somefile.py
        somefile2.py
        ...

そして、boto を使用して DynamoDB に接続しています。__init__.pyファイルは空で、各somefilexxx.pyファイルは次のように始まります。

db = boto.connect_dynamodb()
table = db.get_table('table')
def do_stuff_with_table():

私はアプリでスレッドを使用しません。また、明示的に有効にしない限り、uWSGI はスレッドを使用しないと思います--threads。この設定は理にかなっていますか?urllib で心配しなければならないスレッドの問題はありますか (スレッドについては、私が何も知らないと思うかもしれませんが...)?

connect_dynamodb()または、ファイルを呼び出して、__init__.pyファイル内のテーブルのみをロードする方が理にかなっていsomefile.pyますか?

4

1 に答える 1

7

uWSGI でスレッドを有効にしていないため (参照: --enable-threads--threads)、ここでは Python のスレッド化は行われていません (Boto やその他の方法で)。

を使用することをお勧めし--lazyます。これにより、アプリがフォーク後の各ワーカーに読み込まれます。次に、その動作に依存して、各ワーカーに適切な接続/プール/などがあることを確認できます。共有状態を気にせずに利用できます。

于 2012-07-26T09:48:29.443 に答える