如何设置Spring Retry模板以重试最大尝试次数:无限

时间:2018-02-15 20:09:10

标签: java spring multithreading jdbc spring-retry

我想使用Spring Retry修改数据库连接,如果数据库在应用程序启动时关闭,请再次尝试。我不想限制重试次数。我应该如何配置策略来执行此操作。

我当前的代码(我知道在这种状态下它限制为100):

SimpleRetryPolicy policy = new SimpleRetryPolicy(100, Collections.singletonMap(Exception.class, true));

// Use the policy...
RetryTemplate template = new RetryTemplate();
template.setRetryPolicy(policy);
Connection conn = template.execute(new RetryCallback<Connection, Exception>() {
    public Connection doWithRetry(RetryContext context) throws Exception {
        return getConnectionFactory().createConnection();
    }
});

我应该如何修改此代码?

1 个答案:

答案 0 :(得分:3)

使用AlwaysRetryPolicy代替SimpleRetryPolicy

但您可能希望在重试之间添加BackOffPolicy等待。

然后,您可以中断线程以关闭所有内容。