From de82d22fba0d051529af62713bf295e69114f9a6 Mon Sep 17 00:00:00 2001 From: xxssyyyyssxx Date: Wed, 11 Nov 2020 11:07:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E4=BC=98=E9=9B=85=E7=9A=84=E7=AD=89?= =?UTF-8?q?=E5=BE=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frameless/FramelessApplication.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/java/com/xxl/job/executor/sample/frameless/FramelessApplication.java b/xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/java/com/xxl/job/executor/sample/frameless/FramelessApplication.java index e259b8f5..e03179ad 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/java/com/xxl/job/executor/sample/frameless/FramelessApplication.java +++ b/xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/java/com/xxl/job/executor/sample/frameless/FramelessApplication.java @@ -3,6 +3,7 @@ package com.xxl.job.executor.sample.frameless; import com.xxl.job.executor.sample.frameless.config.FrameLessXxlJobConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import top.jfunc.common.thread.HoldProcessor; import java.util.concurrent.TimeUnit; @@ -18,21 +19,26 @@ public class FramelessApplication { // start FrameLessXxlJobConfig.getInstance().initXxlJobExecutor(); - // Blocks until interrupted - while (true) { - try { - TimeUnit.HOURS.sleep(1); - } catch (InterruptedException e) { - break; - } - } + waitHere(); } catch (Exception e) { logger.error(e.getMessage(), e); - } finally { - // destory - FrameLessXxlJobConfig.getInstance().destoryXxlJobExecutor(); } } + private static void waitHere() { + final HoldProcessor holdProcessor = new HoldProcessor(); + holdProcessor.startAwait(); + logger.info("程序开始等待"); + Runtime.getRuntime().addShutdownHook(new Thread(){ + @Override + public void run() { + logger.info("收到kill 信号,执行清理程序"); + //在关闭的时候释放资源 + FrameLessXxlJobConfig.getInstance().destoryXxlJobExecutor(); + holdProcessor.stopAwait(); + } + }); + } + }