From 4fa795dee905daab2391c7ee09c0cee5312826a6 Mon Sep 17 00:00:00 2001 From: cj Date: Fri, 28 Dec 2018 22:54:38 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E9=80=80=E5=87=BA=E6=97=B6=E8=83=BD=E5=85=B3=E9=97=AD=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/ApplicationShutdownBean.java | 49 +++++++++++++++++++ .../ruoyi/framework/manager/AsyncManager.java | 6 +++ .../SpringSessionValidationScheduler.java | 8 +++ 3 files changed, 63 insertions(+) create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationShutdownBean.java diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationShutdownBean.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationShutdownBean.java new file mode 100644 index 00000000..0aa36432 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationShutdownBean.java @@ -0,0 +1,49 @@ +package com.ruoyi.framework.config; + +import com.ruoyi.framework.manager.AsyncManager; +import com.ruoyi.framework.shiro.web.session.SpringSessionValidationScheduler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PreDestroy; +import java.util.concurrent.TimeUnit; + +/** + * AsyncManagerShutdownBean 类 + * + * @Auther: cj + * @Date: 2018/12/28 + */ +@Component +public class ApplicationShutdownBean { + private static final Logger logger = LoggerFactory.getLogger("sys-user"); + + @Autowired(required = false) + private SpringSessionValidationScheduler springSessionValidationScheduler; + + @PreDestroy + public void destroy(){ + shutdownSpringSessionValidationScheduler(); + shutdownAsyncManager(); + } + + private void shutdownSpringSessionValidationScheduler(){ + if(springSessionValidationScheduler != null && springSessionValidationScheduler.isEnabled()) + try { + logger.info("关闭会话验证任务"); + springSessionValidationScheduler.disableSessionValidation(); + } catch (Exception e) { + logger.error(e.getMessage(),e); + } + } + private void shutdownAsyncManager(){ + try { + logger.info("关闭后台任务线程池"); + AsyncManager.me().shutdown(10, TimeUnit.SECONDS); + } catch (Exception e) { + logger.error(e.getMessage(),e); + } + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java index 0a015a6b..c64a0e4c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java @@ -40,4 +40,10 @@ public class AsyncManager { executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS); } + + public void shutdown(long timeout, TimeUnit unit) throws Exception + { + executor.shutdown(); + executor.awaitTermination(timeout,unit); + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java index cce436ab..c8e7d4a2 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java @@ -134,6 +134,14 @@ public class SpringSessionValidationScheduler implements SessionValidationSchedu log.debug("Stopping Spring Scheduler session validation job..."); } + if(this.enabled){ + executorService.shutdown(); + try { + executorService.awaitTermination(10,TimeUnit.SECONDS); + } catch (InterruptedException e) { + log.error(e.getMessage(),e); + } + } this.enabled = false; } } From fc834b35cb94532791f44c53e6ec8392508a9683 Mon Sep 17 00:00:00 2001 From: cj Date: Fri, 28 Dec 2018 22:55:31 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=B8=80=E9=94=AE=E6=89=93war=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/build-ry-admin-war.cmd | 2 + ruoyi-admin/pom-war.xml | 90 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 bin/build-ry-admin-war.cmd create mode 100644 ruoyi-admin/pom-war.xml diff --git a/bin/build-ry-admin-war.cmd b/bin/build-ry-admin-war.cmd new file mode 100644 index 00000000..57386886 --- /dev/null +++ b/bin/build-ry-admin-war.cmd @@ -0,0 +1,2 @@ +call mvn clean install -f ../pom.xml +call mvn clean package -f ../ruoyi-admin/pom-war.xml \ No newline at end of file diff --git a/ruoyi-admin/pom-war.xml b/ruoyi-admin/pom-war.xml new file mode 100644 index 00000000..10021104 --- /dev/null +++ b/ruoyi-admin/pom-war.xml @@ -0,0 +1,90 @@ + + + + ruoyi + com.ruoyi + 3.1 + + 4.0.0 + war + ruoyi-admin-war + + + web服务入口(war) + + + + + + + + org.springframework.boot + spring-boot-devtools + true + + + + + io.springfox + springfox-swagger2 + ${swagger.version} + + + + + io.springfox + springfox-swagger-ui + ${swagger.version} + + + + + com.ruoyi + ruoyi-framework + ${ruoyi.version} + + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + org.apache.tomcat.embed + tomcat-embed-jasper + provided + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 3.0.0 + + false + ${artifactId} + + + + ${artifactId} + + + \ No newline at end of file From 0e240cb2441dc0dbff66cb1dbc047910f0e03f1e Mon Sep 17 00:00:00 2001 From: cj Date: Fri, 28 Dec 2018 23:05:53 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=A3=8E=E6=A0=BC?= =?UTF-8?q?=E5=92=8C=E9=A1=B9=E7=9B=AE=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/ApplicationShutdownBean.java | 34 +++++++++++++------ .../SpringSessionValidationScheduler.java | 10 ++++-- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationShutdownBean.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationShutdownBean.java index 0aa36432..715b4a83 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationShutdownBean.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationShutdownBean.java @@ -17,32 +17,44 @@ import java.util.concurrent.TimeUnit; * @Date: 2018/12/28 */ @Component -public class ApplicationShutdownBean { +public class ApplicationShutdownBean +{ private static final Logger logger = LoggerFactory.getLogger("sys-user"); @Autowired(required = false) private SpringSessionValidationScheduler springSessionValidationScheduler; @PreDestroy - public void destroy(){ + public void destroy() + { shutdownSpringSessionValidationScheduler(); shutdownAsyncManager(); } - private void shutdownSpringSessionValidationScheduler(){ + private void shutdownSpringSessionValidationScheduler() + { if(springSessionValidationScheduler != null && springSessionValidationScheduler.isEnabled()) - try { - logger.info("关闭会话验证任务"); - springSessionValidationScheduler.disableSessionValidation(); - } catch (Exception e) { - logger.error(e.getMessage(),e); + { + try + { + logger.info("关闭会话验证任务"); + springSessionValidationScheduler.disableSessionValidation(); + } + catch (Exception e) + { + logger.error(e.getMessage(),e); + } } } - private void shutdownAsyncManager(){ - try { + private void shutdownAsyncManager() + { + try + { logger.info("关闭后台任务线程池"); AsyncManager.me().shutdown(10, TimeUnit.SECONDS); - } catch (Exception e) { + } + catch (Exception e) + { logger.error(e.getMessage(),e); } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java index c8e7d4a2..e94cf678 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java @@ -134,11 +134,15 @@ public class SpringSessionValidationScheduler implements SessionValidationSchedu log.debug("Stopping Spring Scheduler session validation job..."); } - if(this.enabled){ + if(this.enabled) + { executorService.shutdown(); - try { + try + { executorService.awaitTermination(10,TimeUnit.SECONDS); - } catch (InterruptedException e) { + } + catch (InterruptedException e) + { log.error(e.getMessage(),e); } }