RetryPolicy クラス

  • java.lang.Object
    • com.microsoft.azure.servicebus.primitives.RetryPolicy

public abstract class RetryPolicy

例外が発生したときにメッセージング操作を再試行するためのポリシーの抽象化を表します。 送信者または受信者によって発生する一部の例外は、ServerBusy のように一時的な場合があり、再試行すると操作は成功します。 クライアントは、クライアント アプリケーションに例外をスローする前に、失敗した操作を自動的に再試行するように送信者と受信者に指示する再試行ポリシー ConnectionStringBuilder を指定できます。 ユーザーはこのクラスを実装しないでください。代わりに、 または #getNoRetryを使用して#getDefault、指定された実装のいずれかを使用する必要があります。

コンストラクターの概要

修飾子 コンストラクター 説明
protected RetryPolicy(String name)

指定した名前の再試行ポリシーのインスタンスを作成します。

メソッドの概要

修飾子と型 メソッドと説明
static RetryPolicy getDefault()

連続する失敗ごとに指数関数的に増加する再試行間隔を提供する再試行ポリシー。

Duration getNextRetryInterval(String clientId, Exception lastException, Duration remainingTime)

最後に発生した例外と、操作がタイムアウトするまでの残りの時間に基づいて、次の再試行を試行する間隔を取得します。

static RetryPolicy getNoRetry()

操作を再試行せず、実質的に再試行を無効にする再試行ポリシーを取得します。

protected int getRetryCount(String clientId)
void incrementRetryCount(String clientId)

クライアントが試行した再試行回数を増分します。

static boolean isRetryableException(Exception exception)

例外が再試行可能かどうかを判断します。

protected abstract Duration onGetNextRetryInterval(String clientId, Exception lastException, Duration remainingTime, int baseWaitTime)

最後に発生した例外、操作がタイムアウトするまでの残りの時間、再試行までの最小待機時間に基づいて、次の再試行を試行する間隔を調整します。

void resetRetryCount(String clientId)

クライアントによって行われた再試行回数をリセットします。

String toString()

メソッドの継承元: java.lang.Object

コンストラクターの詳細

RetryPolicy

protected RetryPolicy(String name)

指定した名前で RetryPolicy のインスタンスを作成します。

Parameters:

name - ポリシーの名前

メソッドの詳細

getDefault

public static RetryPolicy getDefault()

連続する失敗ごとに指数関数的に増加する再試行間隔を提供する再試行ポリシー。 このポリシーは、ほとんどのクライアント アプリケーションで使用するのに適しており、再試行ポリシーが指定されていない場合の既定のポリシーでもあります。

Returns:

指数関数的に増加する再試行間隔を提供する再試行ポリシー

getNextRetryInterval

public Duration getNextRetryInterval(String clientId, Exception lastException, Duration remainingTime)

最後に発生した例外と、操作がタイムアウトするまでの残りの時間に基づいて、nextRetry を試行する間隔を取得します。

Parameters:

clientId - 例外が発生した送信者または受信者またはクライアント オブジェクトの ID。
lastException - 最後に発生した例外
remainingTime - 操作がタイムアウトする前に再試行する remainingTime

Returns:

操作が再試行される期間。 操作を再試行しない場合は null を返します。

getNoRetry

public static RetryPolicy getNoRetry()

操作を再試行せず、実質的に再試行を無効にする再試行ポリシーを取得します。 クライアントは、操作を自動的に再試行したくない場合に備えて、この再試行ポリシーを使用できます。

Returns:

操作を再試行しない再試行ポリシー

getRetryCount

protected int getRetryCount(String clientId)

Parameters:

clientId

incrementRetryCount

public void incrementRetryCount(String clientId)

クライアントが試行した再試行回数を増分します。

Parameters:

clientId - 失敗した操作を再試行するクライアントの ID

isRetryableException

public static boolean isRetryableException(Exception exception)

例外が再試行可能かどうかを判断します。 一時的な例外のみを再試行する必要があります。

Parameters:

exception - 操作によって検出された例外。再試行可能かどうかが判断されます。

Returns:

例外が再試行可能な場合 (ServerBusy やその他の一時的な例外など)、それ以外の場合は false を返します

onGetNextRetryInterval

protected abstract Duration onGetNextRetryInterval(String clientId, Exception lastException, Duration remainingTime, int baseWaitTime)

最後に発生した例外、操作がタイムアウトするまでの残りの時間、再試行までの最小待機時間に基づいて、nextRetry を試行する間隔を調整します。 クライアントはこのメソッドをオーバーライドして、検出された例外に基づいて待機時間を指定できます。

Parameters:

clientId - 例外が発生した送信者または受信者またはクライアント オブジェクトの ID。
lastException - 最後に発生した例外
remainingTime - 操作がタイムアウトする前に再試行する remainingTime
baseWaitTime - 基本再試行ポリシーによって決定される最小待機時間。 メソッドをオーバーライドすると、別の値が返される可能性があります。

Returns:

操作が再試行される期間。 操作を再試行しない場合は null を返します

resetRetryCount

public void resetRetryCount(String clientId)

クライアントによって行われた再試行回数をリセットします。 このメソッドは、再試行操作が成功したときにクライアントによって呼び出されます。

Parameters:

clientId - 失敗した操作を再試行し、成功したクライアントの ID。

toString

public String toString()

Overrides:

RetryPolicy.toString()

適用対象