From 74349c325323053ccf3cb9a62fbeebeee0071126 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Fri, 8 Mar 2024 11:47:26 +0100 Subject: [PATCH] Added 3 attempts in upsert aggregation_status --- .../aggregator/persistence/PostgreSQLConnector.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/gcube/accounting/aggregator/persistence/PostgreSQLConnector.java b/src/main/java/org/gcube/accounting/aggregator/persistence/PostgreSQLConnector.java index da86647..556a5aa 100644 --- a/src/main/java/org/gcube/accounting/aggregator/persistence/PostgreSQLConnector.java +++ b/src/main/java/org/gcube/accounting/aggregator/persistence/PostgreSQLConnector.java @@ -14,6 +14,7 @@ import java.util.Date; import java.util.List; import java.util.TimeZone; import java.util.UUID; +import java.util.concurrent.TimeUnit; import org.gcube.accounting.aggregator.aggregation.AggregationInfo; import org.gcube.accounting.aggregator.aggregation.AggregationType; @@ -205,7 +206,7 @@ public class PostgreSQLConnector extends PersistencePostgreSQL implements Aggreg @Override public void upsertAggregationStatus(AggregationStatus aggregationStatus) throws Exception { - for(int i=1; i<=3; i++){ + for(int i=0; i<3; i++){ try { Connection connection = getConnection(); Statement statement = connection.createStatement(); @@ -217,6 +218,15 @@ public class PostgreSQLConnector extends PersistencePostgreSQL implements Aggreg connection.commit(); break; }catch (Throwable e) { + if(i<3) { + long delay = TimeUnit.MILLISECONDS.toMillis(100); + logger.error("Unable to upsert aggregation status at attemp {}. Retrying in {} millis.", i, delay, e); + Thread.sleep(delay); + }else { + logger.error("Unable to upsert aggregation status.", e); + throw e; + } + } finally { connection.close(); } }