你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

RetryPolicy 类

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

public abstract class RetryPolicy

表示在遇到异常时重试消息传送操作的策略的抽象。 发送方或接收方遇到的某些异常可能是暂时性的,例如 ServerBusy,如果重试,操作将成功。 客户端可以使用指定重试策略 ConnectionStringBuilder ,引导发送方和接收方在向客户端应用程序引发异常之前自动重试失败的操作。 用户不应实现此类,而应通过 #getDefault#getNoRetry使用提供的实现之一。

构造函数摘要

修饰符 构造函数 说明
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 实例。

参数:

name - 策略的名称

方法详细信息

getDefault

public static RetryPolicy getDefault()

重试策略,在每次连续失败时提供呈指数级增长的重试间隔。 此策略适用于使用大多数客户端应用程序,如果未指定重试策略,则也是默认策略。

返回:

提供指数级增加重试间隔的重试策略

getNextRetryInterval

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

根据遇到的最后一个异常和操作超时之前的剩余时间,获取应在该时间间隔之后尝试 nextRetry 的间隔。

参数:

clientId - 遇到异常的发送方、接收方或客户端对象的 ID。
lastException - 上次遇到异常
remainingTime - remainingTime 在操作超时之前重试

返回:

持续时间,之后将重试操作。 如果不应重试操作,则返回 null。

getNoRetry

public static RetryPolicy getNoRetry()

获取一个重试策略,该策略不会重试任何操作,从而有效地禁用重试。 如果客户端不希望自动重试任何操作,则可以使用此重试策略。

返回:

不重试任何操作的重试策略

getRetryCount

protected int getRetryCount(String clientId)

参数:

clientId

incrementRetryCount

public void incrementRetryCount(String clientId)

递增客户端进行的连续重试尝试次数。

参数:

clientId - 客户端重试失败操作的 ID

isRetryableException

public static boolean isRetryableException(Exception exception)

确定异常是否能够重试。 只应重试暂时性异常。

参数:

exception - 操作遇到的异常,要确定它是否能够重试。

返回:

如果异常可重试 ((如 ServerBusy 或其他暂时性异常) ),则为 true,否则返回 false

onGetNextRetryInterval

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

根据上次遇到的异常、操作超时前的剩余时间以及重试前的最短等待时间调整应尝试 nextRetry 的间隔。 客户端可以重写此方法,以根据遇到的异常指定等待时间。

参数:

clientId - 遇到异常的发送方、接收方或客户端对象的 ID。
lastException - 上次遇到异常
remainingTime - remainingTime 在操作超时之前重试
baseWaitTime - 由基本重试策略确定的最短等待时间。 重写方法可以返回不同的值。

返回:

持续时间,之后将重试操作。 当不应重试操作时返回 null

resetRetryCount

public void resetRetryCount(String clientId)

重置客户端进行的重试次数。 重试操作成功时,客户端将调用此方法。

参数:

clientId - 刚刚重试失败操作并成功的客户端的 ID。

toString

public String toString()

替代:

RetryPolicy.toString()

适用于