ServiceUnavailableRetryStrategy

ServiceUnavailableRetryStrategy

我希望处理这种情况,我希望它在延迟后重试,但是似乎我在ServiceUnavailableRetryStrategy中设置的延迟没有发生:

19:42:29.046 [scheduler-15] INFO o.a.http.impl.execchain.RetryExec-
在以下情况下捕获到I / O异常(org.apache.http.NoHttpResponseException)
处理对{}-> http://testing.com:80的请求:目标服务器
未能回复19:42:29.049 [scheduler-15]信息
o.a.http.impl.execchain.RetryExec-重试请求
{}-> http://testing.com:80

我同时设置了ServiceUnavailableRetryStrategyHttpRequestRetryHandler。从这两者来看,似乎只有ServiceUnavailableRetryStrategy有一个延迟选项,在这里我看不到httpRequestRetryHandler的任何延迟选项。

因此,在上面的NoHttpResponseException情况下,实际使用的是哪一个?两者之间有什么区别?

最佳答案

  • HttpRequestRetryHandler表示一种策略,用于确定在发生I / O错误(未从服务器接收到HTTP响应)的情况下重试该请求是否安全。
  • ServiceUnavailableRetryStrategy表示一种策略,用于确定在服务暂时不可用(响应状态503)的情况下是否应重试该请求。

  • 在5.0中,两个接口很可能会被单个策略接口所取代。

    07-24 14:01