1
我不知道我怎麼能重構這個方法與重試lambda [不使用第三方重試引擎]。我如何重構帶重試策略的方法。沒有使用第三方
(財產以後像拉姆達是獲取將作爲參數傳入該方法通過在更實用的風格做了同樣的事情
public static Connection createDbConnection(JobConfiguration jobConfiguration, ArrayList<String> hostsIps) {
Connection retConnection = null;
Properties connectionProperties = new Properties();
connectionProperties.put("user", jobConfiguration.getDbConfiguration().getUserName());
connectionProperties.put("password", jobConfiguration.getDbConfiguration().getPassword());
connectionProperties.put("ConnectionLoadBalance", 1);
int attempts = 0;
while (++attempts <= hostsIps.size()) {
try {
String connectionString = String.format("jdbc:vertica://%s:%s/%s",
hostsIps.get(attempts - 1),
jobConfiguration.getDbConfiguration().getPort(),
jobConfiguration.getDbConfiguration().getDbName());
retConnection = DriverManager.getConnection
(
connectionString,
connectionProperties
);
retConnection.setAutoCommit(false);
break;
} catch (Exception ex) {
LOGGER.error("Failed to connect to node - {}" + hostsIps.get(attempts - 1) + ex);
}
}
return retConnection;
}
你能幫助嘗試的次數? 感謝