1
0

2 Ревизии 6267334e4f ... 8de2ab7976

Автор SHA1 Съобщение Дата
  linxk 8de2ab7976 Merge branch 'master' of http://124.220.229.80:9093/root/mall преди 2 седмици
  linxk 77e239560e xxljob преди 2 седмици

+ 7 - 0
mall-service/pom.xml

@@ -34,6 +34,13 @@
             <version>2.2.2</version>
         </dependency>
 
+        <!-- xxl-job-core -->
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+            <version>2.3.1</version>
+        </dependency>
+
 
         <!--格式化sql日志-->
         <dependency>

+ 76 - 0
mall-service/src/main/java/com/txz/mall/configurer/XxlJobConfig.java

@@ -0,0 +1,76 @@
+package com.txz.mall.configurer;
+
+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;
+import org.springframework.context.annotation.Profile;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+@Profile({"local","dev", "test", "pro", "pro2"})
+@Configuration
+public class XxlJobConfig {
+    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
+
+    @Value("${xxl.job.admin.addresses}")
+    private String adminAddresses;
+
+    @Value("${xxl.job.executor.appname}")
+    private String appName;
+
+    @Value("${xxl.job.executor.ip}")
+    private String ip;
+
+    @Value("${xxl.job.executor.port}")
+    private int port;
+
+    @Value("${xxl.job.accessToken}")
+    private String accessToken;
+
+    @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.setIp(ip);
+        xxlJobSpringExecutor.setPort(port);
+        xxlJobSpringExecutor.setAccessToken(accessToken);
+        xxlJobSpringExecutor.setLogPath(logPath);
+        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+        return xxlJobSpringExecutor;
+    }
+
+    /**
+     * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+     *
+     *      1、引入依赖:
+     *          <dependency>
+     *             <groupId>org.springframework.cloud</groupId>
+     *             <artifactId>spring-cloud-commons</artifactId>
+     *             <version>${version}</version>
+     *         </dependency>
+     *
+     *      2、配置文件,或者容器启动变量
+     *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+     *
+     *      3、获取IP
+     *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+     */
+
+
+}

+ 38 - 0
mall-service/src/main/java/com/txz/mall/task/GeneralJob.java

@@ -0,0 +1,38 @@
+package com.txz.mall.task;
+
+import cn.hutool.core.collection.CollUtil;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import tk.mybatis.mapper.entity.Condition;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 常规job
+ *
+ * 开发步骤:
+ * 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String param)"
+ * 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
+ *
+ * @author xuxueli 2019-12-11 21:52:51
+ */
+@Component
+public class GeneralJob {
+    private static Logger logger = LoggerFactory.getLogger(GeneralJob.class);
+
+
+    /**
+     * 1、简单任务示例(Bean模式)
+     */
+    @XxlJob("generalReportJob")
+    public ReturnT<String> generalReportJob(String param) throws Exception {
+        //do things
+        return ReturnT.SUCCESS;
+    }
+
+}

+ 9 - 1
mall-service/src/main/resources/bootstrap.properties

@@ -41,6 +41,8 @@ spring.cloud.nacos.config.file-extension=properties
 spring.cloud.nacos.config.extension-configs[0]=mq-${spring.profiles.active}.properties
 spring.cloud.nacos.config.extension-configs[1]=redis-${spring.profiles.active}.properties
 spring.cloud.nacos.config.extension-configs[2]=${spring.application.name}-${spring.profiles.active}.properties
+
+spring.cloud.nacos.config.extension-configs[3]=xxljob-${spring.profiles.active}.properties
 dubbo.protocol.serialization=kryo
 #dubbo.protocol.serialization=
 dubbo.protocol.optimizer=
@@ -73,4 +75,10 @@ spring.messages.cache-duration=0
 
 logging.level.com.txz.mall.dao=DEBUG
 logging.level.org.apache.ibatis=DEBUG
-logging.level.java.sql=DEBUG
+logging.level.java.sql=DEBUG
+
+local.job=http://8.219.117.74/xxl-job-admin
+dev.job=http://124.220.229.80:9096/xxl-job-admin
+test.job=http://172.10.100.40:8080/xxl-job-admin
+pro.job=http://172.10.100.40:8080/xxl-job-admin
+dev.accessToken=