package com.alibaba.doris.dataserver.tools; import com.alibaba.doris.dataserver.ApplicationContext; import com.alibaba.doris.dataserver.event.server.DataServerEventListener; import com.alibaba.doris.dataserver.event.server.ShutdownEvent; /** * @author ajun Email:jack.yuj@alibaba-inc.com */ public class DataServerJVMShutdownHook extends Thread implements DataServerEventListener { public DataServerJVMShutdownHook(ApplicationContext appContext) { this.appContext = appContext; } @Override public void run() { // 防止重复发送shutdown事件。 if (!isShutdownExecuted) { appContext.getEventListenerManager().fireEvent(new ShutdownEvent()); } } public void onShutdown() { isShutdownExecuted = true; } public void onStartup() { ; } private volatile boolean isShutdownExecuted = false; private ApplicationContext appContext; }