目錄
1.1. 修改xxl-job-admin中的配置文件(發送人)
下載:http://www.xuxueli.com/xxl-job/#/
執行xxl-job -> doc下的.sql文件到數據庫,並根據本地數據庫地址修改配置文件。
目錄結構
1. 首先需要啓動xxl-job-admin:任務調度中心(訪問地址:127.0.0.1:8080/xxl-job-admin)
2. 啓動測試項目xxl-job-executor-sample-springboot
1. 配置error錯誤後發送郵箱(發送人)
1、qq郵箱 -> 設置 -> 賬戶 -> 開啓POP3/SMTP功能
1.1. 修改xxl-job-admin中的配置文件(發送人)
1.2. 郵箱(接收人)
配置完成,出現執行錯誤後就會發送郵箱展示錯誤信息。
2. 添加任務
xxl-job-executor-sample-springboot測試工程下
3. 整合到項目中使用
- 任務調度管理平臺可以不用整合到項目中,直接打jar包發佈即可,如有需要也可以放入到項目中。
- 以下只整合任務調度執行類。
目錄結構
3.1. 引入pom
<!-- xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.0.2</version>
</dependency>
3.2. yml 配置文件(1)
logging:
config: classpath:logback.xml
server:
port: 8081
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
spring:
application:
name: chemical-pay-job
xxl:
job:
admin:
addresses: http://127.0.0.1:8080/xxl-job-admin # 任務調度管理平臺地址 xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
executor:
appname: xxl-job-executor-sample
ip: ''
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: -1
port: 9999
accessToken: ''
3.3. XxljobConfig(2)
package com.core;
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.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(initMethod = "start", destroyMethod = "destroy")
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();
*/
}
3.4. 具體執行方法類(3)
package com.jobhandler;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
/**
* 任務Handler示例(Bean模式)
*
* 開發步驟: 1、繼承"IJobHandler":“com.xxl.job.core.handler.IJobHandler”;
* 2、註冊到Spring容器:添加“@Component”註解,被Spring容器掃描爲Bean實例;
* 3、註冊到執行器工廠:添加“@JobHandler(value="自定義jobhandler名稱")”註解,
* 註解value值對應的是調度中心新建任務的JobHandler屬性的值。 4、執行日誌:需要通過 "XxlJobLogger.log" 打印執行日誌;
*
* @author xuxueli 2015-12-19 19:43:36
*/
@JobHandler(value = "payJobHandler")
@Component
public class PayJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
//XxlJobLogger.log("XXL-JOB, Hello World.");
System.out.println(">>>> payJobHandler");
add();
return SUCCESS;
}
public void add(){
System.out.println("add......");
}
}
整合完成。
4. 測試
1. 首先需要啓動任務調度中心xxl-job-admin:(訪問地址:127.0.0.1:8080/xxl-job-admin)
2. 啓動chemical-pay-job
3. 在任務任務調度中心平臺新建任務
點擊啓動後每隔五秒就會執行: