From 2f5cf3b7f0d8d43f33fa2b0d3fab796556c2b8ff Mon Sep 17 00:00:00 2001
From: "Yurii Ruban [EPAM / GCP]" <yurii_ruban@epam.com>
Date: Wed, 1 Feb 2023 07:33:34 +0000
Subject: [PATCH] Added config property for retry logic in rabbitmq
 (GONRG-6407)

---
 provider/indexer-gc/docs/anthos/README.md     | 20 ++++++++++---------
 .../resources/application-anthos.properties   |  3 ++-
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/provider/indexer-gc/docs/anthos/README.md b/provider/indexer-gc/docs/anthos/README.md
index e86460c69..702760243 100644
--- a/provider/indexer-gc/docs/anthos/README.md
+++ b/provider/indexer-gc/docs/anthos/README.md
@@ -40,6 +40,8 @@ Usage of spring profiles is preferred.
 | `PARTITION_AUTH_ENABLED` | ex `true` or `false`   | Disable or enable auth token provisioning for requests to Partition service                                               | no         | -      |
 | `OQMDRIVER`              | `rabbitmq` or `pubsub` | Oqm driver mode that defines which message broker will be used                                                            | no         | -      |
 | `SERVICE_TOKEN_PROVIDER` | `GCP` or `OPENID`      | Service account token provider, `GCP` means use Google service account `OPEIND` means use OpenId provider like `Keycloak` | no         | -      |
+| `RABBITMQ_RETRY_DELAY`   | ex `20000`             | Message retry interval after unsuccessful processing                                                                      | no         | -      |
+| `RABBITMQ_RETRY_LIMIT`   | ex `5`                 | Number of retries to send a message after unsuccessful processing                                                         | no         | -      |
 
 ### Properties set in Partition service:
 
@@ -190,15 +192,15 @@ curl -L -X PATCH 'https://dev.osdu.club/api/partition/v1/partitions/opendes' -H
 
 RabbitMq should have exchanges and queues with names and configs:
 
-| EXCHANGE NAME                | EXCHANGE CONFIG                     | Target queue name                    | Target queue config                                                                                                            |
-|------------------------------|-------------------------------------|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|
-| indexing-progress            | `Type 	fanout` <br/>`durable:	true` | (Consumer not implemented)           | (Consumer not implemented)                                                                                                     |
-| records-changed              | `Type 	fanout` <br/>`durable:	true` | indexer-records-changed              | `x-delivery-limit:	5`<br/>`x-dead-letter-exchange:	records-changed-dead-letter`<br/>`x-queue-type: quorum`<br/>`durable: true`  |
-| records-changed-dead-letter  | `Type 	fanout` <br/>`durable:	true` | indexer-records-changed-dead-letter  | `x-queue-type: classic`<br/>`durable: true`<br/>`x-message-ttl: 604800000`                                                                                    |
-| reprocess                    | `Type 	fanout` <br/>`durable:	true` | indexer-reprocess                    | `x-delivery-limit:	5`<br/>`x-dead-letter-exchange:	reprocess-dead-letter`<br/>`x-queue-type: quorum`<br/>`durable: true`  |
-| reprocess-dead-letter        | `Type 	fanout` <br/>`durable:	true` | indexer-reprocess-dead-letter        | `x-queue-type: classic`<br/>`durable: true`<br/>`x-message-ttl: 604800000`                                                                                    |
-| schema-changed               | `Type 	fanout` <br/>`durable:	true` | indexer-schema-changed               | `x-delivery-limit:	5`<br/>`x-dead-letter-exchange:	schema-changed-dead-letter`<br/>`x-queue-type: quorum`<br/>`durable: true`  |
-| schema-changed-dead-letter   | `Type 	fanout` <br/>`durable:	true` | indexer-schema-changed-dead-letter   | `x-queue-type: classic`<br/>`durable: true`<br/>`x-message-ttl: 604800000`                                                                                    |
+| EXCHANGE NAME                    | EXCHANGE CONFIG                                                             | Target queue name         | Target queue config                                                  |
+|----------------------------------|-----------------------------------------------------------------------------|---------------------------|----------------------------------------------------------------------|
+| indexing-progress                | `Type 	fanout` <br/>`durable:	true`                                         | (Consumer not implemented) | (Consumer not implemented)                                           |
+| records-changed                  | `Type 	fanout` <br/>`durable:	true`                                         | indexer-records-changed   | `x-delivery-limit:	5`<br/>`x-queue-type: quorum`<br/>`durable: true` |
+| indexer-records-changed-exchange | `Type 	x-delayed-message` <br/>`durable:	true`<br/>`x-delayed-type:	fanout` | indexer-records-changed   | `x-delivery-limit:	5`<br/>`x-queue-type: quorum`<br/>`durable: true` |
+| reprocess                        | `Type 	fanout` <br/>`durable:	true`                                         | indexer-reprocess         | `x-delivery-limit:	5`<br/>`x-queue-type: quorum`<br/>`durable: true` |
+| indexer-reprocess-exchange       | `Type 	x-delayed-message` <br/>`durable:	true`<br/>`x-delayed-type:	fanout` | indexer-reprocess         | `x-delivery-limit:	5`<br/>`x-queue-type: quorum`<br/>`durable: true` |
+| schema-changed                   | `Type 	fanout` <br/>`durable:	true`                                         | indexer-schema-changed    | `x-delivery-limit:	5`<br/>`x-queue-type: quorum`<br/>`durable: true` |
+| indexer-schema-changed-exchange  | `Type 	x-delayed-message` <br/>`durable:	true`<br/>`x-delayed-type:	fanout` | indexer-schema-changed    | `x-delivery-limit:	5`<br/>`x-queue-type: quorum`<br/>`durable: true` |
 
 ## Keycloak configuration
 
diff --git a/provider/indexer-gc/src/main/resources/application-anthos.properties b/provider/indexer-gc/src/main/resources/application-anthos.properties
index e33d2787b..491a6ee82 100644
--- a/provider/indexer-gc/src/main/resources/application-anthos.properties
+++ b/provider/indexer-gc/src/main/resources/application-anthos.properties
@@ -4,4 +4,5 @@ partition-auth-enabled=false
 openid.provider-url=
 openid.provider-client-id=
 openid.provider-client-secret=
-rabbitmq.retry.limit=3
+rabbitmq-retry-delay=20000
+rabbitmq-retry-limit=5
-- 
GitLab