@Bean
public RetryTemplate retryTemplate(RetryCallback<RetryTemplate, Exception> callback) {
RetryTemplate template = new RetryTemplate();
ExceptionClassifierRetryPolicy retryPolicy = new ExceptionClassifierRetryPolicy();
Map<Class<? extends Throwable>, Boolean> retryableExceptions = new HashMap<Class<? extends Throwable>, Boolean>();
retryableExceptions.put(SocketTimeoutException.class, Boolean.TRUE);
retryableExceptions.put(ConnectionPoolTimeoutException.class, Boolean.TRUE);
retryableExceptions.put(ResourceAccessException.class, Boolean.TRUE);
NeverRetryPolicy doNotRetry = new NeverRetryPolicy();
SimpleRetryPolicy simpleRetryPolicy = new SimpleRetryPolicy(maxAttempts, retryableExceptions);
simpleRetryPolicy.setMaxAttempts(maxAttempts);
FixedBackOffPolicy backOffPolicy = new FixedBackOffPolicy();
backOffPolicy.setBackOffPeriod(backOffPeriod);
template.setRetryPolicy(simpleRetryPolicy);
template.setBackOffPolicy(backOffPolicy);
try {
return template.execute(callback);
} catch (Exception e) {
logger.error("Retry processing failed " + e.getMessage());
return RetryTemplate.FAILED;
}
}
@bean
工厂方法只是一个bean定义;不能像这样将运行时代码
try {
return template.execute(callback);
} catch (Exception e) {
logger.error("Retry processing failed " + e.getMessage());
return RetryTemplate.FAILED;
}
在那里。必须返回模板;
。
由于要将RetryCallback
传入工厂方法,因此必须在其他地方定义了这种类型的@bean
。
问题内容: 我有一个方法(如下),该方法可以下拉并以String形式返回网页的来源。一切正常且繁琐,但是当连接超时时,程序将引发异常并退出。有没有更好的方法可以执行此操作以允许它在超时时重试,或者有没有办法在此方法内执行此操作? 问题答案: 这是代码的重构,应重试下载时间。虽然尚未进行测试,但是它应该向正确的方向发展。
因此,我使用来处理HTTP请求,它基本上使用的。 当设置了“读”超时,如果服务器连接已经建立,但服务器在应答之前等待/Hibernate/延迟响应“超时”时间(因此引发“读”异常而不是“连接”异常),则在引发该异常之前发送另一个(静默)请求,导致两个类似的请求,这是不可接受的。 我在寻找什么样的解决方案? 好吧,一个可以很好地解决这个问题/bug的解决方案,就像这里解释的修复一样(但我再次认为这在
我刚刚升级到Android Studio 2.2.1版本,并且一个项目运行良好,现在我得到以下错误消息: 我知道还有另一个问题与此类似,但不是相同的情况。我不使用任何代理什么的。
我的Spring Hibernate Web应用程序在MySQL上运行,这给我带来了麻烦。 我四处寻找并尝试了不同的配置,在这个网站上阅读了相当多的帖子,但它仍然会弹出微笑的头像。 错误消息是:由:com.mysql.jdbc.exceptions.jdbc4.通信异常:从服务器成功接收到的最后一个数据包是63,313,144毫秒前。最后一个成功发送到服务器的数据包是63,313,144毫秒前。比
在我的生产Cassandra集群(10个节点)中,我经常获得。因此,为了在我的本地开发环境(四个节点的Cassandra集群)中重现这个问题,我运行了我的代码,然后停止了两个CassandRadaemon。我有以下例外 线程“main”com.datastax.driver.core.exceptions.unavailableException:在com.datastax.driver.core