diff --git a/src/main/java/com/serliunx/ddns/constant/IpProviderType.java b/src/main/java/com/serliunx/ddns/constant/IpProviderType.java index f039f41..f607f3d 100644 --- a/src/main/java/com/serliunx/ddns/constant/IpProviderType.java +++ b/src/main/java/com/serliunx/ddns/constant/IpProviderType.java @@ -1,5 +1,6 @@ package com.serliunx.ddns.constant; +import com.serliunx.ddns.support.ipprovider.IcanhazipProvider; import com.serliunx.ddns.support.ipprovider.IpApiProvider; import com.serliunx.ddns.support.ipprovider.Provider; @@ -18,6 +19,11 @@ public enum IpProviderType { */ IP_API(new IpApiProvider()), + /** + * ip数据提供商 icanhazip + */ + I_CAN_HAZ_IP(new IcanhazipProvider()), + ; private final Provider provider; diff --git a/src/main/java/com/serliunx/ddns/support/SystemInitializer.java b/src/main/java/com/serliunx/ddns/support/SystemInitializer.java index ca1e196..26760dc 100644 --- a/src/main/java/com/serliunx/ddns/support/SystemInitializer.java +++ b/src/main/java/com/serliunx/ddns/support/SystemInitializer.java @@ -10,7 +10,7 @@ import com.serliunx.ddns.core.context.MultipleSourceInstanceContext; import com.serliunx.ddns.core.instance.Instance; import com.serliunx.ddns.support.ipprovider.Provider; import com.serliunx.ddns.support.ipprovider.ScheduledProvider; -import com.serliunx.ddns.support.thread.TaskThreadFactory; +import com.serliunx.ddns.support.thread.ThreadFactoryBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -166,7 +166,8 @@ public final class SystemInitializer implements Refreshable, Clearable { private void initThreadPool(int coreSize) { Assert.isLargerThan(coreSize, 1); - scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(coreSize, new TaskThreadFactory()); + scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(coreSize, ThreadFactoryBuilder.builder() + .ofNamePattern("ddns-task-%s")); // 初始化一个线程保活 scheduledThreadPoolExecutor.submit(() -> {}); 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 415f744..f715360 100644 --- a/src/main/java/com/serliunx/ddns/support/ipprovider/ScheduledProvider.java +++ b/src/main/java/com/serliunx/ddns/support/ipprovider/ScheduledProvider.java @@ -112,7 +112,7 @@ public class ScheduledProvider extends AbstractProvider { internalCache = internalProvider.get(); if (valueConsumer != null) { - valueConsumer.accept(cache); + valueConsumer.accept(internalCache); } }, 0, timePeriod, TimeUnit.SECONDS); } diff --git a/src/main/java/com/serliunx/ddns/support/thread/TaskThreadFactory.java b/src/main/java/com/serliunx/ddns/support/thread/TaskThreadFactory.java deleted file mode 100644 index cf4f456..0000000 --- a/src/main/java/com/serliunx/ddns/support/thread/TaskThreadFactory.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.serliunx.ddns.support.thread; - -import com.serliunx.ddns.support.Assert; -import org.jetbrains.annotations.NotNull; - -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * 简易的实例活动相关的线程工厂, 仅仅定义了线程的名称规则. - * - * @author SerLiunx - * @version 1.0.0 - * @since 2024/5/15 - */ -public class TaskThreadFactory implements ThreadFactory { - - private final AtomicInteger count = new AtomicInteger(0); - - @Override - public Thread newThread(@NotNull Runnable r) { - Assert.notNull(r); - return new Thread(r, String.format(getNamePattern(), count.getAndIncrement())); - } - - protected String getNamePattern() { - return "ddns-task-%s"; - } -} diff --git a/src/main/java/com/serliunx/ddns/support/thread/UtilThreadFactory.java b/src/main/java/com/serliunx/ddns/support/thread/UtilThreadFactory.java deleted file mode 100644 index 5b11135..0000000 --- a/src/main/java/com/serliunx/ddns/support/thread/UtilThreadFactory.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.serliunx.ddns.support.thread; - -/** - * 同 {@link TaskThreadFactory}, 暂未使用. - * - * @author SerLiunx - * @version 1.0.0 - * @since 2024/5/15 - */ -public class UtilThreadFactory extends TaskThreadFactory { - - @Override - protected String getNamePattern() { - return "ddns-util-%s"; - } -}