From 647a7d329308f7efb3d4fe44737f853055710b4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=99=93=E5=8F=8C=20Li=20Xiao=20Shuang?= <644968328@qq.com> Date: Fri, 31 Dec 2021 19:51:08 +0800 Subject: [PATCH] [MINOR] ConfigurationWrapper class adds thread pool shutdown (#683) * gradle * ConfigurationWrapper class adds thread pool shutdown --- .../common/config/ConfigurationWrapper.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/ConfigurationWrapper.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/ConfigurationWrapper.java index b1eaac311b..0f193a48bf 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/ConfigurationWrapper.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/ConfigurationWrapper.java @@ -22,7 +22,6 @@ import org.apache.commons.lang3.StringUtils; import java.io.BufferedReader; -import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Properties; @@ -37,12 +36,14 @@ public class ConfigurationWrapper { public Logger logger = LoggerFactory.getLogger(this.getClass()); - + + private static final long TIME_INTERVAL = 30 * 1000L; + private String file; private Properties properties = new Properties(); - private boolean reload = true; + private boolean reload; private ScheduledExecutorService configLoader = ThreadPoolFactory.createSingleScheduledExecutor("eventMesh-configLoader-"); @@ -55,19 +56,18 @@ public ConfigurationWrapper(String file, boolean reload) { private void init() { load(); if (this.reload) { - configLoader.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - load(); - } - }, 30 * 1000, 30 * 1000, TimeUnit.MILLISECONDS); + configLoader.scheduleAtFixedRate(this::load, TIME_INTERVAL, TIME_INTERVAL, TimeUnit.MILLISECONDS); + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + logger.info("Configuration reload task closed"); + configLoader.shutdownNow(); + })); } } private void load() { try { logger.info("loading config: {}", file); - properties.load(new BufferedReader(new FileReader(new File(file)))); + properties.load(new BufferedReader(new FileReader(file))); } catch (IOException e) { logger.error("loading properties [{}] error", file, e); }