This is an automated email from the ASF dual-hosted git repository.
dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push:
new f756ccc7ba [INLONG-9910][Agent] Increase daily verification for
process monitoring, reinstallation, or re downloading (#9912)
f756ccc7ba is described below
commit f756ccc7baa603624025a45e2d99490d452e062e
Author: justinwwhuang <[email protected]>
AuthorDate: Mon Apr 1 23:42:56 2024 +0800
[INLONG-9910][Agent] Increase daily verification for process monitoring,
reinstallation, or re downloading (#9912)
---
.../inlong/agent/installer/ModuleManager.java | 39 ++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git
a/inlong-agent/agent-installer/src/main/java/org/apache/inlong/agent/installer/ModuleManager.java
b/inlong-agent/agent-installer/src/main/java/org/apache/inlong/agent/installer/ModuleManager.java
index 00dfc9668d..590644d6c3 100755
---
a/inlong-agent/agent-installer/src/main/java/org/apache/inlong/agent/installer/ModuleManager.java
+++
b/inlong-agent/agent-installer/src/main/java/org/apache/inlong/agent/installer/ModuleManager.java
@@ -143,6 +143,7 @@ public class ModuleManager extends AbstractDaemon {
while (isRunnable()) {
try {
dealWithConfigQueue(configQueue);
+ checkModules();
AuditUtils.add(AuditUtils.AUDIT_ID_AGENT_TASK_MGR_HEARTBEAT, "", "",
AgentUtils.getCurrentTime(), 1, 1);
AgentUtils.silenceSleepInMs(CORE_THREAD_SLEEP_TIME);
@@ -213,6 +214,44 @@ public class ModuleManager extends AbstractDaemon {
}
}
+ private void checkModules() {
+ LOGGER.info("check modules start");
+ currentModules.values().forEach((module) -> {
+ LOGGER.info("check module current state {} {}", module.getName(),
module.getState());
+ switch (module.getState()) {
+ case NEW:
+ if (downloadModule(module)) {
+ saveModuleState(module.getId(),
ModuleStateEnum.DOWNLOADED);
+ } else {
+ LOGGER.error("download module {} failed, keep state in
new", module.getName());
+ }
+ break;
+ case DOWNLOADED:
+ if (isPackageDownloaded(module)) {
+ installModule(module);
+ saveModuleState(module.getId(),
ModuleStateEnum.INSTALLED);
+ } else {
+ LOGGER.info("check module {} package failed, change
stated to new, will download package again",
+ module.getName());
+ saveModuleState(module.getId(), ModuleStateEnum.NEW);
+ }
+ break;
+ case INSTALLED:
+ if (!isProcessAllStarted(module)) {
+ LOGGER.info("module {} process not all started try to
start", module.getName());
+ if (!startModule(module)) {
+ LOGGER.info("start module {} failed, change state
to downloaded", module.getState());
+ saveModuleState(module.getId(),
ModuleStateEnum.DOWNLOADED);
+ }
+ }
+ break;
+ default:
+ LOGGER.error("module {} invalid state {}",
module.getName(), module.getState());
+ }
+ });
+ LOGGER.info("check modules end");
+ }
+
private boolean updateModules(List<ModuleConfig> managerModuleList) {
Map<Integer, ModuleConfig> modulesFromManager = new
ConcurrentHashMap<>();
managerModuleList.forEach((moduleConfig) -> {