Skip to content

Commit 351f180

Browse files
authored
Merge pull request #1115 from nurkiewicz/patch-1
Provide standard method to cleanup schedulers
2 parents ce51991 + 4a790ba commit 351f180

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

extended/src/main/java/io/kubernetes/client/extended/leaderelection/LeaderElector.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import org.slf4j.Logger;
2626
import org.slf4j.LoggerFactory;
2727

28-
public class LeaderElector {
28+
public class LeaderElector implements AutoCloseable {
2929

3030
private static final Logger log = LoggerFactory.getLogger(LeaderElector.class);
3131

@@ -43,12 +43,12 @@ public class LeaderElector {
4343
private String reportedLeader;
4444
private Consumer<String> onNewLeaderHook;
4545

46-
private ScheduledExecutorService scheduledWorkers =
46+
private final ScheduledExecutorService scheduledWorkers =
4747
Executors.newSingleThreadScheduledExecutor(
4848
makeThreadFactory("leader-elector-scheduled-worker-%d"));
49-
private ExecutorService leaseWorkers =
49+
private final ExecutorService leaseWorkers =
5050
Executors.newSingleThreadExecutor(makeThreadFactory("leader-elector-lease-worker-%d"));
51-
private ExecutorService hookWorkers =
51+
private final ExecutorService hookWorkers =
5252
Executors.newSingleThreadExecutor(makeThreadFactory("leader-elector-hook-worker-%d"));
5353

5454
public LeaderElector(LeaderElectionConfig config) {
@@ -337,4 +337,11 @@ private void maybeReportTransition() {
337337
private ThreadFactory makeThreadFactory(String nameFormat) {
338338
return new ThreadFactoryBuilder().setDaemon(true).setNameFormat(nameFormat).build();
339339
}
340+
341+
@Override
342+
public void close() {
343+
scheduledWorkers.shutdownNow();
344+
leaseWorkers.shutdownNow();
345+
hookWorkers.shutdownNow();
346+
}
340347
}

0 commit comments

Comments
 (0)