From 26712a8c81e777c3d331c8afbdd58ebf321fb91b Mon Sep 17 00:00:00 2001 From: sasuolander Date: Mon, 9 Jan 2023 14:06:16 +0200 Subject: [PATCH 1/5] DROTH-3564 add waiting time before trying again --- .../fi/liikennevirasto/digiroad2/util/ClientUtils.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala index ed637d198e..10c93d29a6 100644 --- a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala +++ b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala @@ -7,12 +7,16 @@ object ClientUtils { @tailrec def retry[T](retries: Int, logger: Logger)(fn: => T): T = { + val exponent = 1 try { fn } catch { case e: Throwable => logger.error(s"TEST LOG Query failed (retries left: ${retries - 1}). Error: ${e.getMessage}") - if (retries > 1) retry(retries - 1, logger)(fn) + if (retries > 1){ + Thread.sleep(500*(exponent + 1)) // wait before making new request + retry(retries - 1, logger)(fn) + } else throw e } } From 1964aa599ec71564a3ebbe6a2735f8c99a126fb3 Mon Sep 17 00:00:00 2001 From: sasuolander Date: Mon, 9 Jan 2023 15:48:25 +0200 Subject: [PATCH 2/5] DROTH-3564 fix backoff implementations --- .../liikennevirasto/digiroad2/util/ClientUtils.scala | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala index 10c93d29a6..7ddef48796 100644 --- a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala +++ b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala @@ -6,18 +6,20 @@ import scala.annotation.tailrec object ClientUtils { @tailrec - def retry[T](retries: Int, logger: Logger)(fn: => T): T = { - val exponent = 1 + def retry[T](retries: Int, logger: Logger,exponentToLoop: Int =1)(fn: => T): T = { + var exponent = exponentToLoop try { fn } catch { case e: Throwable => logger.error(s"TEST LOG Query failed (retries left: ${retries - 1}). Error: ${e.getMessage}") if (retries > 1){ - Thread.sleep(500*(exponent + 1)) // wait before making new request - retry(retries - 1, logger)(fn) - } + Thread.sleep(500*exponent) // wait before making new request + exponent+=1 + retry(retries - 1, logger,exponent)(fn) + } else throw e + } } From 4a8994697a770d01a9a3417cc2ce2dbcc542f593 Mon Sep 17 00:00:00 2001 From: sasuolander Date: Mon, 9 Jan 2023 15:55:02 +0200 Subject: [PATCH 3/5] DROTH-3564 remove unneeded enters --- .../scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala | 2 -- 1 file changed, 2 deletions(-) diff --git a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala index 7ddef48796..16f1acf125 100644 --- a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala +++ b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/util/ClientUtils.scala @@ -22,6 +22,4 @@ object ClientUtils { } } - - } From 155395bc1bf63c11303318172b5b3867118e5d9f Mon Sep 17 00:00:00 2001 From: sasuolander Date: Mon, 9 Jan 2023 15:56:31 +0200 Subject: [PATCH 4/5] DROTH-3564 add more retries --- .../liikennevirasto/digiroad2/service/RoadAddressService.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/service/RoadAddressService.scala b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/service/RoadAddressService.scala index 446926f539..eb93a01dad 100644 --- a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/service/RoadAddressService.scala +++ b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/service/RoadAddressService.scala @@ -129,7 +129,7 @@ class RoadAddressService(viiteClient: SearchViiteClient ) { * @return */ def getAllByLinkIds(linkIds: Seq[String]): Seq[RoadAddressForLink] = { - ClientUtils.retry(2, logger) { + ClientUtils.retry(10, logger) { LogUtils.time(logger,"TEST LOG Retrieve road address by links"){ viiteClient.fetchAllByLinkIds(linkIds) } From 334d51951df3cd412b56fa568737b28b410b717a Mon Sep 17 00:00:00 2001 From: sasuolander Date: Tue, 10 Jan 2023 09:09:31 +0200 Subject: [PATCH 5/5] DROTH-3564 lower retry number to 5 --- .../liikennevirasto/digiroad2/service/RoadAddressService.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/service/RoadAddressService.scala b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/service/RoadAddressService.scala index eb93a01dad..60aa92d174 100644 --- a/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/service/RoadAddressService.scala +++ b/digiroad2-oracle/src/main/scala/fi/liikennevirasto/digiroad2/service/RoadAddressService.scala @@ -129,7 +129,7 @@ class RoadAddressService(viiteClient: SearchViiteClient ) { * @return */ def getAllByLinkIds(linkIds: Seq[String]): Seq[RoadAddressForLink] = { - ClientUtils.retry(10, logger) { + ClientUtils.retry(5, logger) { LogUtils.time(logger,"TEST LOG Retrieve road address by links"){ viiteClient.fetchAllByLinkIds(linkIds) }