diff --git a/src/main/java/com/serliunx/ddns/support/SystemInitializer.java b/src/main/java/com/serliunx/ddns/support/SystemInitializer.java index edfd3cd..ca1e196 100644 --- a/src/main/java/com/serliunx/ddns/support/SystemInitializer.java +++ b/src/main/java/com/serliunx/ddns/support/SystemInitializer.java @@ -8,12 +8,9 @@ import com.serliunx.ddns.core.Clearable; import com.serliunx.ddns.core.Refreshable; import com.serliunx.ddns.core.context.MultipleSourceInstanceContext; import com.serliunx.ddns.core.instance.Instance; -import com.serliunx.ddns.support.ipprovider.IpApiProvider; import com.serliunx.ddns.support.ipprovider.Provider; import com.serliunx.ddns.support.ipprovider.ScheduledProvider; -import com.serliunx.ddns.support.okhttp.IPAddressResponse; -import com.serliunx.ddns.support.okhttp.HttpClient; -import com.serliunx.ddns.thread.TaskThreadFactory; +import com.serliunx.ddns.support.thread.TaskThreadFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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 c81b1bf..bf25b49 100644 --- a/src/main/java/com/serliunx/ddns/support/ipprovider/ScheduledProvider.java +++ b/src/main/java/com/serliunx/ddns/support/ipprovider/ScheduledProvider.java @@ -2,6 +2,7 @@ package com.serliunx.ddns.support.ipprovider; import com.serliunx.ddns.support.Assert; import com.serliunx.ddns.support.InstanceContextHolder; +import com.serliunx.ddns.support.thread.ThreadFactoryBuilder; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -57,7 +58,9 @@ public class ScheduledProvider extends AbstractProvider { @Override public void init() { - poolExecutor = new ScheduledThreadPoolExecutor(2); + poolExecutor = new ScheduledThreadPoolExecutor(2, ThreadFactoryBuilder.builder() + .ofNamePattern("ip-provider-%s") + ); // 提交 submitTask(); } diff --git a/src/main/java/com/serliunx/ddns/thread/TaskThreadFactory.java b/src/main/java/com/serliunx/ddns/support/thread/TaskThreadFactory.java similarity index 94% rename from src/main/java/com/serliunx/ddns/thread/TaskThreadFactory.java rename to src/main/java/com/serliunx/ddns/support/thread/TaskThreadFactory.java index e3dc95a..cf4f456 100644 --- a/src/main/java/com/serliunx/ddns/thread/TaskThreadFactory.java +++ b/src/main/java/com/serliunx/ddns/support/thread/TaskThreadFactory.java @@ -1,4 +1,4 @@ -package com.serliunx.ddns.thread; +package com.serliunx.ddns.support.thread; import com.serliunx.ddns.support.Assert; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/com/serliunx/ddns/support/thread/ThreadFactoryBuilder.java b/src/main/java/com/serliunx/ddns/support/thread/ThreadFactoryBuilder.java new file mode 100644 index 0000000..8e7164b --- /dev/null +++ b/src/main/java/com/serliunx/ddns/support/thread/ThreadFactoryBuilder.java @@ -0,0 +1,48 @@ +package com.serliunx.ddns.support.thread; + +import org.jetbrains.annotations.NotNull; + +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 线程工厂构建 + * + * @author SerLiunx + * @version 1.0.3 + * @since 2024/12/3 + */ +public final class ThreadFactoryBuilder { + + /** + * 实例 + */ + private static final ThreadFactoryBuilder INSTANCE = new ThreadFactoryBuilder(); + + private ThreadFactoryBuilder() {} + + /** + * 获取实例 + */ + public static ThreadFactoryBuilder builder() { + return INSTANCE; + } + + /** + * 线程工厂之模板名称 + * + * @param pattern 名称模板(如: task-util-%s), %s将根据数量递增 + * @return 线程工厂 + */ + public ThreadFactory ofNamePattern(final String pattern) { + return new ThreadFactory() { + + private final AtomicInteger counter = new AtomicInteger(0); + + @Override + public Thread newThread(@NotNull Runnable r) { + return new Thread(r, String.format(pattern, counter.getAndIncrement())); + } + }; + } +} diff --git a/src/main/java/com/serliunx/ddns/thread/UtilThreadFactory.java b/src/main/java/com/serliunx/ddns/support/thread/UtilThreadFactory.java similarity index 88% rename from src/main/java/com/serliunx/ddns/thread/UtilThreadFactory.java rename to src/main/java/com/serliunx/ddns/support/thread/UtilThreadFactory.java index 2c52a1b..5b11135 100644 --- a/src/main/java/com/serliunx/ddns/thread/UtilThreadFactory.java +++ b/src/main/java/com/serliunx/ddns/support/thread/UtilThreadFactory.java @@ -1,4 +1,4 @@ -package com.serliunx.ddns.thread; +package com.serliunx.ddns.support.thread; /** * 同 {@link TaskThreadFactory}, 暂未使用.