From 6f3431c1bfd93f0d4f600b1fc2e112b5f5a70108 Mon Sep 17 00:00:00 2001
From: lishipeng <1572427111@qq.com>
Date: Sat, 10 Dec 2022 16:47:28 +0800
Subject: [PATCH] =?UTF-8?q?=E5=86=8D=E6=AC=A1=E4=BF=AE=E5=A4=8D=E5=BB=B6?=
=?UTF-8?q?=E9=95=BF=E8=BF=9E=E6=8E=A5=E8=BF=9C=E7=A8=8B=E6=9C=8D=E5=8A=A1?=
=?UTF-8?q?=E5=99=A8=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 ++
.../common/config/XxlJobConfig.java | 78 +++++++++++++++++++
.../ftpdemo/task/IdentificationUpTask.java | 2 +-
.../springblade/ftpdemo/task/TestTask.java | 7 +-
src/main/resources/application-dev.yml | 46 ++++++++++-
src/main/resources/logback.xml | 29 +++++++
.../java/org/springblade/test/TestMethod.java | 49 ------------
7 files changed, 162 insertions(+), 55 deletions(-)
create mode 100644 src/main/java/org/springblade/common/config/XxlJobConfig.java
create mode 100644 src/main/resources/logback.xml
delete mode 100644 src/test/java/org/springblade/test/TestMethod.java
diff --git a/pom.xml b/pom.xml
index 1733d4c..ac3be03 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,6 +119,12 @@
org.springblade
blade-starter-report
+
+
+ com.xuxueli
+ xxl-job-core
+ 2.3.1
+
diff --git a/src/main/java/org/springblade/common/config/XxlJobConfig.java b/src/main/java/org/springblade/common/config/XxlJobConfig.java
new file mode 100644
index 0000000..bd2eec4
--- /dev/null
+++ b/src/main/java/org/springblade/common/config/XxlJobConfig.java
@@ -0,0 +1,78 @@
+package org.springblade.common.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+@Configuration
+public class XxlJobConfig {
+ private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
+
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+ @Value("${xxl.job.executor.address}")
+ private String address;
+
+ @Value("${xxl.job.executor.ip}")
+ private String ip;
+
+ @Value("${xxl.job.executor.port}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ logger.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+ xxlJobSpringExecutor.setAddress(address);
+ xxlJobSpringExecutor.setIp(ip);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+
+ /**
+ * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+ *
+ * 1、引入依赖:
+ *
+ * org.springframework.cloud
+ * spring-cloud-commons
+ * ${version}
+ *
+ *
+ * 2、配置文件,或者容器启动变量
+ * spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+ *
+ * 3、获取IP
+ * String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+ */
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/org/springblade/ftpdemo/task/IdentificationUpTask.java b/src/main/java/org/springblade/ftpdemo/task/IdentificationUpTask.java
index 48d7a6b..5ac1f8c 100644
--- a/src/main/java/org/springblade/ftpdemo/task/IdentificationUpTask.java
+++ b/src/main/java/org/springblade/ftpdemo/task/IdentificationUpTask.java
@@ -24,7 +24,7 @@ public class IdentificationUpTask {
private final NbmsEntApplyServcie nbmsEntApplyServcie;
private final Method method;
- @Scheduled(cron = "0/20 * * * * ? ")
+// @Scheduled(cron = "0/20 * * * * ? ")
public void refreshAliDeviceStatus() {
// 标识解析企业主体信息上报检测新增并上传
threePackMethod(0);
diff --git a/src/main/java/org/springblade/ftpdemo/task/TestTask.java b/src/main/java/org/springblade/ftpdemo/task/TestTask.java
index cdc99db..49d6085 100644
--- a/src/main/java/org/springblade/ftpdemo/task/TestTask.java
+++ b/src/main/java/org/springblade/ftpdemo/task/TestTask.java
@@ -1,5 +1,7 @@
package org.springblade.ftpdemo.task;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.ftpdemo.controller.SSHRemoteCall;
@@ -18,12 +20,13 @@ import java.util.Vector;
* @since 2022/12/1
*/
@Component
-@EnableScheduling
+//@EnableScheduling
@AllArgsConstructor
public class TestTask {
private final Method method;
// @Scheduled(cron = "0/8 * * * * ? ")
+ @XxlJob("demoJobHandler")
public void refreshAliDeviceStatus() throws Exception {
StopWatch stopWatch = new StopWatch("读取表6日志,生成加密文件,上传" );
stopWatch.start();
@@ -32,7 +35,7 @@ public class TestTask {
method.creatSixUpFileAndUp(yyyyMMdd, "1");
stopWatch.stop();
double seconds = stopWatch.getTotalTimeSeconds();
- System.out.println("完成,花费:"+seconds);
+ XxlJobHelper.log("XXL-JOB, 上传日志成功! 共花费:",seconds);
}
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 655bca5..5a8a9d1 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -12,10 +12,33 @@ spring:
# nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
# commandTimeout: 5000
datasource:
+ dynamic:
+ #设置默认的数据源或者数据源组
+ primary: mysql
+ #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
+ strict: false
+ datasource:
+ mysql: #第一数据源 别名
+ #url路径
+ url: jdbc:mysql://223.99.197.190:13306/bladex_boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+ #驱动
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ username: root #数据库账号
+ password: Qn12345@ #数据库密码
+ type: com.zaxxer.hikari.HikariDataSource #指定驱动类型
+ mysql2: #第二数据源 别名
+ #驱动和上面的不同是因为这个驱动是别人封装的
+ #不是自己封装的驱动就使用数据库的驱动
+ driver-class-name: com.mysql.cj.jdbc.Drive
+ url: jdbc:nds://127.0.0.1:3306/测试2?appname=app_yklcbzhxt&characterEncoding=utf8&serverTime=Asia/Shanghai
+ username: root
+ password: 123
+ type: com.zaxxer.hikari.HikariDataSource
+
# MySql
- url: jdbc:mysql://localhost:3306/bladex_boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
- username: root
- password: root
+# url: jdbc:mysql://localhost:3306/bladex_boot
+# username: root
+# password: root
# PostgreSQL
#url: jdbc:postgresql://127.0.0.1:5432/bladex_boot
#username: postgres
@@ -33,6 +56,21 @@ spring:
#username: BLADEX_BOOT
#password: BLADEX_BOOT
+# job执行器配置
+xxl:
+ job:
+ enabled: true
+ executor:
+ appname: xxl-job-sample-local
+ address:
+ ip:
+ port: 9999
+ logpath: D:\aaa\test
+ logretentiondays: 30
+ accessToken: default_token
+ admin:
+ addresses: http://localhost:8080/xxl-job-admin
+
#第三方登陆
social:
enabled: true
@@ -52,3 +90,5 @@ blade:
upload-domain: http://localhost:8999
remote-path: /usr/share/nginx/html
+logging:
+ config: classpath:logback.xml
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
new file mode 100644
index 0000000..d5a0d2c
--- /dev/null
+++ b/src/main/resources/logback.xml
@@ -0,0 +1,29 @@
+
+
+
+ logback
+
+
+
+
+ %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+ ${log.path}
+
+ ${log.path}.%d{yyyy-MM-dd}.zip
+
+
+ %date %level [%thread] %logger{36} [%file : %line] %msg%n
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/org/springblade/test/TestMethod.java b/src/test/java/org/springblade/test/TestMethod.java
deleted file mode 100644
index a04cc3f..0000000
--- a/src/test/java/org/springblade/test/TestMethod.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.springblade.test;
-
-
-import lombok.AllArgsConstructor;
-import org.junit.jupiter.api.Test;
-import org.springblade.core.tool.utils.DateUtil;
-import org.springblade.ftpdemo.controller.SSHRemoteCall;
-import org.springblade.ftpdemo.service.Method;
-import org.springblade.ftpdemo.service.impl.MethodImpl;
-import org.springblade.ftpdemo.util.Constant;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import java.util.Date;
-import java.util.Vector;
-
-/**
- * @author laifeng
- * @since 2022/11/30
- */
-
-@SpringBootTest
-public class TestMethod {
-
-
- @Test
- void test1() {
- String operatorTime = "20221201000030";
-
- Date date = DateUtil.parse(operatorTime, DateUtil.PATTERN_DATETIME_MINI);
- String format = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");
- System.out.println(format);
-
-
- }
-
- @Test
- void test2() throws Exception {
-
- // 1、首先远程连接ssh
- SSHRemoteCall.getInstance().sshRemoteCallLogin(Constant.host, Constant.user,Constant.password1);
- Vector files = SSHRemoteCall.getInstance().listFiles("/opt/2022-11-30");
- for (Object file : files) {
- System.out.println(file.toString());
- }
-
-
- }
-}