mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-02 12:17:43 +08:00
[DS-5559][fix][Master Server] Master Server was shutdown but the process still in system (#5588)
* Close spring context to destory beans that has running thread
This commit is contained in:
parent
87604b7a3d
commit
75be09735a
@ -183,6 +183,8 @@ public class MasterServer implements IStoppable {
|
||||
} catch (Exception e) {
|
||||
logger.warn("Quartz service stopped exception:{}", e.getMessage());
|
||||
}
|
||||
// close spring Context and will invoke method with @PreDestroy annotation to destory beans. like ServerNodeManager,HostManager,TaskResponseService,CuratorZookeeperClient,etc
|
||||
springApplicationContext.close();
|
||||
} catch (Exception e) {
|
||||
logger.error("master server stop exception ", e);
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ package org.apache.dolphinscheduler.service.bean;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.support.AbstractApplicationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@ -32,6 +33,13 @@ public class SpringApplicationContext implements ApplicationContextAware {
|
||||
SpringApplicationContext.applicationContext = applicationContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Close this application context, destroying all beans in its bean factory.
|
||||
*/
|
||||
public void close() {
|
||||
((AbstractApplicationContext)applicationContext).close();
|
||||
}
|
||||
|
||||
public static <T> T getBean(Class<T> requiredType) {
|
||||
return applicationContext.getBean(requiredType);
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import org.apache.curator.framework.CuratorFrameworkFactory;
|
||||
import org.apache.curator.framework.api.ACLProvider;
|
||||
import org.apache.curator.framework.state.ConnectionState;
|
||||
import org.apache.curator.retry.ExponentialBackoffRetry;
|
||||
import org.apache.curator.utils.CloseableUtils;
|
||||
import org.apache.zookeeper.ZooDefs;
|
||||
import org.apache.zookeeper.data.ACL;
|
||||
|
||||
@ -34,6 +35,8 @@ import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
@ -125,4 +128,9 @@ public class CuratorZookeeperClient implements InitializingBean {
|
||||
public CuratorFramework getZkClient() {
|
||||
return zkClient;
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void close() {
|
||||
CloseableUtils.closeQuietly(zkClient);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user