11

xxxがサービス(dynamodb、s3など)であるboto.connect_xxxを複数回呼び出すと、毎回新しい接続プールが作成されますか?私がやりたいのは次のようなものです(Flaskの例):

@app.before_request
def before_request():
    g.db = connect_dynamodb()

常に接続するようにしますが、毎回新しいセキュリティトークンなど、リガマロール全体が作成される場合は、各リクエストの前にこれを実行したくありません。アプリケーションの起動時にconnect_xxx()を1回呼び出すだけで、必要に応じて新しい接続を生成するためにbotoに依存するなどの安全性はありますか?

4

1 に答える 1

11

最善のアプローチは、アプリケーションの起動時にconnect_xxxメソッドを一度呼び出し、それ以降はbotoに依存して接続を管理することです。このルールの唯一の例外は、複数のスレッドを使用している場合です。その場合、botoはスレッドセーフではないhttplibを使用するため、各スレッドは独自の接続を作成する必要があります。

各リクエストの前にconnect_xxxメソッドを呼び出したとしても、本当に大丈夫なはずです。Botoはクラスレベルで接続をプールし、これをかなり効率的な方法で処理する必要があります。

于 2012-07-24T02:36:23.323 に答える