From 03532d3d9766c5c74571d6af93eec3d1a9667adf Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Thu, 2 Apr 2026 22:19:37 +0800 Subject: [PATCH] refactor(config): run init after watching started --- .../api/agent/runtime/config/ConfigCenter.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/ConfigCenter.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/ConfigCenter.kt index 7d741695..b5e65da9 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/ConfigCenter.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/runtime/config/ConfigCenter.kt @@ -2,6 +2,7 @@ package work.slhaf.partner.api.agent.runtime.config import com.alibaba.fastjson2.JSON import org.slf4j.LoggerFactory +import work.slhaf.partner.api.agent.runtime.exception.AgentLaunchFailedException import work.slhaf.partner.api.common.support.DirectoryWatchSupport import java.io.IOException import java.nio.charset.StandardCharsets @@ -52,7 +53,7 @@ object ConfigCenter : AutoCloseable { executor, -1 ) { - reconcileAll() + initAll() }.onCreate(this::handleUpsert) .onModify(this::handleUpsert) .onDelete(this::handleDelete) @@ -64,6 +65,18 @@ object ConfigCenter : AutoCloseable { log.info("ConfigCenter 文件监听注册完毕: {}", paths.configDir) } + fun initAll() { + registrations.forEach { (path, registration) -> + try { + val config = loadConfig(path, registration) + registration.init(config) + } catch (e: Exception) { + throw AgentLaunchFailedException("Failed to init config", e) + } + } + + } + private fun handleUpsert(thisDir: Path, context: Path?) { if (context == null || !Files.isRegularFile(context) || !isJsonFile(context)) { return