Python 2 は、コミュニティによるサポートを終了しました。Python 2 アプリを Python 3 に移行することをおすすめします。

RetryParams クラス

RetryParams は、src/cloudstorage にある Cloud Storage 用 App Engine クライアント ライブラリに含まれています。このクラスを使用すると、タイムアウトおよび再試行を処理するためのデフォルト設定を変更できます。

はじめに

Cloud Storage 用 App Engine クライアント ライブラリは、Google Cloud Storage サーバーとの接続中にデフォルトの設定を使用してタイムアウトと再試行を処理します。 このクラスでは、アプリケーション全体に基づくかまたはライブラリ関数(copy2deletelistbucketopenstat)の特定の呼び出しに対してそれらの設定を変更できます。他のすべての設定は、明示的に上書きされない限り保持されるため、必要な特定の設定のみを変更する必要があります。各 RetryParams インスタンスは、スレッドごとおよびリクエストごとに一意です。

アプリケーション全体でデフォルト設定を変更するには、RetryParams オブジェクトを作成し、変更する設定を指定して、次のようにこのオブジェクトを cloudstorage.set_default_retry_params() 関数に渡します。

my_default_retry_params = cloudstorage.RetryParams(initial_delay=0.2,
                                      max_delay=5.0,
                                      backoff_factor=2,
                                      max_retry_period=15)
cloudstorage.set_default_retry_params(my_default_retry_params)

特定の関数呼び出しのデフォルト設定のみを変更するには、RetryParams オブジェクトを作成し、次のように retry_params パラメータで関数に直接渡します。

write_retry_params = cloudstorage.RetryParams(backoff_factor=1.1)
gcs_file = cloudstorage.open(filename,
                    'w',
                    content_type='text/plain',
                    options={'x-goog-meta-foo': 'foo',
                             'x-goog-meta-bar': 'bar'},
                    retry_params=write_retry_params)

この方法では、アプリや他の関数呼び出しで使用されるデフォルト設定は、影響を受けません。

インスタンス プロパティ

RetryParams インスタンスには次のプロパティがあります。

initial_delay
再試行までに待機する遅延時間(秒数)。デフォルトは 0.1 です。 この遅延は、Google Cloud Storage サーバーで負荷を分散するのに役立ちます。
backoff_factor
最適な処理速度を決定するために使われる指数バックオフ乗数。デフォルトは 2.0 です。 この値の設定方法の説明と推奨事項については、バックオフに関する Google Cloud Storage ドキュメントを参照してください。
max_delay
次の再試行まで待機する最大秒数。デフォルトは 10.0 です。
min_retries
再試行の最小回数。デフォルトは 3 です。
max_retries
再試行の最大回数。まったく再試行しない場合は、この値を 0 に設定します。デフォルトは 6 です。
max_retry_period
特定のリクエストのすべての再試行で使用できる最大秒数。デフォルトは 30.0 です。 この期間が経過し、しかも min_retries 回にわたって試行済みであれば、再試行が終了します。
urlfetch_timeout
UrlFetch が Google Cloud Storage サーバーと通信するのを待機する秒数。これが経過するとタイムアウト エラーが返されます。これはデフォルトで None に設定され、その場合はデフォルトの UrlFetch 期限(5 秒)が使用されます。最大 60 秒までの範囲で、この値を任意の値に設定できます。