1
1
package io .javaoperatorsdk .operator .processing ;
2
2
3
- import static io .javaoperatorsdk .operator .EventListUtils .containsCustomResourceDeletedEvent ;
4
- import static io .javaoperatorsdk .operator .processing .KubernetesResourceUtils .getUID ;
5
- import static io .javaoperatorsdk .operator .processing .KubernetesResourceUtils .getVersion ;
6
-
7
3
import io .fabric8 .kubernetes .client .CustomResource ;
8
4
import io .javaoperatorsdk .operator .api .RetryInfo ;
9
5
import io .javaoperatorsdk .operator .api .config .ConfigurationService ;
12
8
import io .javaoperatorsdk .operator .processing .event .EventHandler ;
13
9
import io .javaoperatorsdk .operator .processing .retry .Retry ;
14
10
import io .javaoperatorsdk .operator .processing .retry .RetryExecution ;
11
+ import org .slf4j .Logger ;
12
+ import org .slf4j .LoggerFactory ;
13
+
15
14
import java .util .HashMap ;
16
15
import java .util .HashSet ;
17
16
import java .util .Map ;
18
17
import java .util .Optional ;
19
18
import java .util .Set ;
20
19
import java .util .concurrent .ScheduledThreadPoolExecutor ;
21
20
import java .util .concurrent .locks .ReentrantLock ;
22
- import org .slf4j .Logger ;
23
- import org .slf4j .LoggerFactory ;
21
+
22
+ import static io .javaoperatorsdk .operator .EventListUtils .containsCustomResourceDeletedEvent ;
23
+ import static io .javaoperatorsdk .operator .processing .KubernetesResourceUtils .getUID ;
24
+ import static io .javaoperatorsdk .operator .processing .KubernetesResourceUtils .getVersion ;
24
25
25
26
/**
26
27
* Event handler that makes sure that events are processed in a "single threaded" way per resource
@@ -162,7 +163,7 @@ private void handleRetryOnException(ExecutionScope executionScope) {
162
163
}
163
164
Optional <Long > nextDelay = execution .nextDelay ();
164
165
165
- nextDelay .ifPresent (
166
+ nextDelay .ifPresentOrElse (
166
167
delay -> {
167
168
log .debug (
168
169
"Scheduling timer event for retry with delay:{} for resource: {}" ,
@@ -171,6 +172,10 @@ private void handleRetryOnException(ExecutionScope executionScope) {
171
172
eventSourceManager
172
173
.getRetryTimerEventSource ()
173
174
.scheduleOnce (executionScope .getCustomResource (), delay );
175
+ },
176
+ () -> {
177
+ log .error (
178
+ "Exhausted retries for {}" , executionScope );
174
179
});
175
180
}
176
181
0 commit comments