Skip to content

Commit 1dbd368

Browse files
committed
review comments
1 parent ae428bd commit 1dbd368

File tree

2 files changed

+13
-8
lines changed
  • spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons
  • spring-cloud-kubernetes-fabric8-leader/src/main/java/org/springframework/cloud/kubernetes/fabric8/leader/election

2 files changed

+13
-8
lines changed

spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/PodReady.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
package org.springframework.cloud.kubernetes.commons;
1818

1919
import java.util.concurrent.CompletableFuture;
20+
import java.util.concurrent.ScheduledFuture;
2021
import java.util.concurrent.TimeUnit;
22+
import java.util.concurrent.atomic.AtomicReference;
2123
import java.util.function.BooleanSupplier;
2224

2325
import org.springframework.core.log.LogAccessor;
@@ -29,14 +31,16 @@ public final class PodReady {
2931

3032
private static final LogAccessor LOG = new LogAccessor(PodReady.class);
3133

34+
private final AtomicReference<ScheduledFuture<?>> podReadyTask = new AtomicReference<>();
35+
3236
private final CachedSingleThreadScheduler podReadyScheduler = new CachedSingleThreadScheduler(
3337
TimeUnit.SECONDS.toMillis(10));
3438

3539
public CompletableFuture<Void> podReady(BooleanSupplier isPodReady, String holderIdentity, String podNamespace) {
3640

3741
CompletableFuture<Void> podReadyFuture = new CompletableFuture<>();
3842

39-
podReadyScheduler.scheduleWithFixedDelay(() -> {
43+
podReadyTask.set(podReadyScheduler.scheduleWithFixedDelay(() -> {
4044

4145
try {
4246
LOG.info(() -> "waiting for pod : " + holderIdentity + " in namespace : " + podNamespace
@@ -56,10 +60,14 @@ public CompletableFuture<Void> podReady(BooleanSupplier isPodReady, String holde
5660
podReadyFuture.completeExceptionally(e);
5761
}
5862

59-
}, 1, 1, TimeUnit.SECONDS);
63+
}, 1, 1, TimeUnit.SECONDS));
6064

6165
return podReadyFuture;
6266

6367
}
6468

69+
public AtomicReference<ScheduledFuture<?>> getPodReadyTask() {
70+
return podReadyTask;
71+
}
72+
6573
}

spring-cloud-kubernetes-fabric8-leader/src/main/java/org/springframework/cloud/kubernetes/fabric8/leader/election/Fabric8LeaderElectionInitiator.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.util.concurrent.CompletableFuture;
2121
import java.util.concurrent.ExecutorService;
2222
import java.util.concurrent.Executors;
23-
import java.util.concurrent.ScheduledFuture;
2423
import java.util.concurrent.TimeUnit;
2524
import java.util.concurrent.atomic.AtomicReference;
2625

@@ -57,8 +56,6 @@ final class Fabric8LeaderElectionInitiator {
5756

5857
private final AtomicReference<ExecutorService> executorService = new AtomicReference<>();
5958

60-
private final AtomicReference<ScheduledFuture<?>> podReadyTask = new AtomicReference<>();
61-
6259
private final AtomicReference<CompletableFuture<?>> leaderFutureReference = new AtomicReference<>();
6360

6461
private volatile boolean destroyCalled = false;
@@ -115,7 +112,7 @@ void postConstruct() {
115112
}
116113
// we cancel the future that checks readiness of the pod
117114
// and thus also close the pool that was running it.
118-
podReadyTask.get().cancel(true);
115+
podReady.getPodReadyTask().get().cancel(true);
119116
});
120117
try {
121118
ready.get();
@@ -141,11 +138,11 @@ void postConstruct() {
141138
void preDestroy() {
142139
destroyCalled();
143140
LOG.info(() -> "preDestroy called in the leader initiator : " + holderIdentity);
144-
if (podReadyTask.get() != null) {
141+
if (podReady.getPodReadyTask().get() != null) {
145142
// if the task is not running, this has no effect
146143
// if the task is running, calling this will also make sure
147144
// that the caching executor will shut down too.
148-
podReadyTask.get().cancel(true);
145+
podReady.getPodReadyTask().get().cancel(true);
149146
}
150147

151148
if (leaderFutureReference.get() != null) {

0 commit comments

Comments
 (0)