Skip to content

Commit

Permalink
polish code commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ipipman committed May 26, 2024
1 parent b37b7d7 commit 5747c47
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ public RegistryCenter zkRc() {
}


/**
* 创建注册中心实例,registry-man, @linkUrl: <a href="https://github.com/ipipman/registry-man">...</a>
* @return RegistryCenter 注册中心实例
*/
@Bean(initMethod = "start", destroyMethod = "stop")
@ConditionalOnProperty(prefix = "registry-ipman", value = "enabled", havingValue = "true")
public RegistryCenter ipManRc() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,13 @@ public void subscribe(ServiceMeta service, ChangedListener listener) {
versionChecker.executor(consumerChecker(service, listener));
}

/**
* 生成一个回调函数,用于检查服务的版本并触发更新。
*
* @param service 服务元数据,包含服务的具体信息。
* @param listener 监听器,用于在版本变化时触发事件。
* @return Callback 返回一个回调函数,该函数在执行时会检查服务的版本是否有更新,并在有更新时触发监听器的事件。
*/
private Callback consumerChecker(ServiceMeta service, ChangedListener listener) {
return () -> {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import java.util.concurrent.TimeUnit;

/**
* Description for this class
* IpMan注册中心执行器,负责周期性执行注册中心相关的任务。
*
* @Author IpMan
* @Date 2024/4/21 20:12
Expand All @@ -20,20 +20,35 @@ public class IpManRegistryExecutor {

// 注册中心探活间隔, 5s
int initialDelay;
// 周期性执行的间隔时间
int delay;
// 时间单位
TimeUnit unit;

// 使用单线程定时任务执行器,用于周期性执行注册中心的任务。
final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);

// 日期格式化器,用于格式化日志输出中的时间。
static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");


/**
* 构造函数,初始化注册中心执行器。
*
* @param initialDelay 初始延迟时间
* @param delay 周期性执行的间隔时间
* @param unit 时间单位
*/
public IpManRegistryExecutor(int initialDelay, int delay, TimeUnit unit) {
this.initialDelay = initialDelay;
this.delay = delay;
this.unit = unit;
}

/**
* 优雅关闭执行器服务。
* 尝试等待所有任务完成,超时后强制关闭。
*/
public void gracefulShutdown() {
executor.shutdown();
try {
Expand All @@ -46,7 +61,13 @@ public void gracefulShutdown() {
}
}

/**
* 提交一个注册中心回调任务,周期性执行。
*
* @param callback 注册中心任务的回调接口
*/
public void executor(Callback callback) {
// 定时并周期性执行回调任务,记录日志并执行回调函数
executor.scheduleWithFixedDelay(() -> {
log.debug(" schedule to check ipman registry ... [{}]", DTF.format(LocalDateTime.now()));
try {
Expand Down

0 comments on commit 5747c47

Please sign in to comment.