diff --git a/src/main/java/com/serliunx/ddns/support/SystemInitializer.java b/src/main/java/com/serliunx/ddns/support/SystemInitializer.java index 33dd702..2ef10c8 100644 --- a/src/main/java/com/serliunx/ddns/support/SystemInitializer.java +++ b/src/main/java/com/serliunx/ddns/support/SystemInitializer.java @@ -195,6 +195,7 @@ public final class SystemInitializer implements Refreshable, Clearable { InstanceContextHolder.setAdditional("stopping"); log.info("程序正在关闭中, 可能需要一定时间."); scheduledThreadPoolExecutor.shutdown(); + scheduledProvider.close(); log.info("已关闭."); InstanceContextHolder.clearAdditional(); }, "DDNS-ShutDownHook")); diff --git a/src/main/java/com/serliunx/ddns/support/ipprovider/ScheduledProvider.java b/src/main/java/com/serliunx/ddns/support/ipprovider/ScheduledProvider.java index 13253dc..d269fbf 100644 --- a/src/main/java/com/serliunx/ddns/support/ipprovider/ScheduledProvider.java +++ b/src/main/java/com/serliunx/ddns/support/ipprovider/ScheduledProvider.java @@ -17,7 +17,7 @@ import java.util.function.Consumer; * @version 1.0.3 * @since 2024/11/25 */ -public class ScheduledProvider extends AbstractProvider { +public class ScheduledProvider extends AbstractProvider implements AutoCloseable { private final Provider internalProvider; @@ -55,6 +55,11 @@ public class ScheduledProvider extends AbstractProvider { this(internalProvider, 60); } + @Override + public void close() { + poolExecutor.shutdown(); + } + @Override public String get() { return internalCache;