Bedingungsloser Reset (und besserer Methoden-Name) für `BackOffState`
authorKai Moritz <kai@juplo.de>
Sat, 11 Jan 2025 09:58:25 +0000 (10:58 +0100)
committerKai Moritz <kai@juplo.de>
Thu, 6 Feb 2025 17:04:39 +0000 (18:04 +0100)
src/main/java/de/juplo/kafka/BackOffState.java
src/main/java/de/juplo/kafka/ExampleConsumer.java
src/test/java/de/juplo/kafka/BackOffStateTest.java

index 4981bb6..a51b5a9 100644 (file)
@@ -95,20 +95,9 @@ class BackOffState
     return this.offset == offset && timeNextRetryIsDue == null;
   }
 
-  void markAsCompleted()
+  void reset()
   {
-    if (timeNextRetryIsDue != null)
-    {
-      log.info(
-        "{} - {}. retry for offset={} in {} succeeded after {}",
-        id,
-        numRetries,
-        offset,
-        topicPartition,
-        Duration.between(startTime, timeNextRetryIsDue));
-
-      timeNextRetryIsDue = null;
-    }
+    timeNextRetryIsDue = null;
   }
 
   private void initializeNextBackOff()
index 9e73b11..b767ca8 100644 (file)
@@ -178,7 +178,7 @@ public class ExampleConsumer implements ConsumerRebalanceListener, Runnable
                 log.warn("{} - Ignoring non-retryable error: {}", id, e.toString());
               }
 
-              backOffState[topicPartition.partition()].markAsCompleted();
+              backOffState[topicPartition.partition()].reset();
             }
           }
         }
index 338631c..7160768 100644 (file)
@@ -263,14 +263,14 @@ class BackOffStateTest
   }
 
   @Test
-  @DisplayName("A started BackOffState is not waiting for a retry if it is marked as completed")
-  void StartedBackOffStateIsNotWaitingForRetryIfMarkedCompleted()
+  @DisplayName("A started BackOffState is not waiting for a retry after a reset")
+  void StartedBackOffStateIsNotWaitingForRetryAfterReset()
   {
     // GIVEN
     BackOffState backOffState = StartedBackoffStateWithRetries();
 
     // WHEN
-    backOffState.markAsCompleted();
+    backOffState.reset();
 
     // THEN
     assertThat(backOffState.isWaitingForNextRetry()).isFalse();
@@ -284,7 +284,7 @@ class BackOffStateTest
     BackOffState backOffState = StartedBackoffStateWithRetries();
 
     // WHEN
-    backOffState.markAsCompleted();
+    backOffState.reset();
 
     // THEN
     assertThat(backOffState.isStarted(OFFSET)).isTrue();