文章目录
前提:执行器和xxl-job任务调度中心启动完毕
一、xxl-job任务调度中心
1. 调度中心创建任务
2. 调度中心创建执行器
注:一定要和执行器ip对上,外网ip不可以
二、执行器任务编码
2.1. 单参数
package com.gblfy.distributedjob.task;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
public class TaskExecute {
private final static Logger logger = LoggerFactory.getLogger(TaskExecute.class);
/**
* 任务调度入口
*
* <p>
* 参数1: 执行日期 executeDate 2021-02-15
* 参数2: 执行标识 executeFlag I-增量 F-全量
* 参数3: 表名称 tableName sys_user
* 参数4: 管理机构 manageCom 86
* 参数5: 执行场景 executeScene UPDATE
* </p>
*/
@XxlJob("myJobHandler")
public void execute() {
// 获取参数
String param = XxlJobHelper.getJobParam();
logger.info("接收調度中心参数...[{}]",param);
//控制台输出日志
logger.info("myXxlJobHandler execute...");
try {
//书写业务逻辑
//TODO
//写日志到调度中心日志中
XxlJobHelper.log("myXxlJobHandler execute Success...");
// 设置任务结果
XxlJobHelper.handleSuccess();
} catch (Exception e) {
logger.error("myXxlJobHandler execute Fail ...", e);
//写日志到调度中心日志中
XxlJobHelper.log("myXxlJobHandler execute Fail...");
// 设置任务结果
XxlJobHelper.handleFail();
}
}
}
2.2. 多参数
package com.gblfy.distributedjob.task;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
public class TaskExecute {
private final static Logger logger = LoggerFactory.getLogger(TaskExecute.class);
/**
* 任务调度入口
*
* <p>
* 参数1: 执行日期 executeDate 2021-02-15
* 参数2: 执行标识 executeFlag I-增量 F-全量
* 参数3: 表名称 tableName sys_user
* 参数4: 管理机构 manageCom 86
* 参数5: 执行场景 executeScene UPDATE
* </p>
*/
@XxlJob("myJobHandler")
public void execute() {
// 获取参数
String param = XxlJobHelper.getJobParam();
String[] methodParams = param.split(",");
logger.info("执行日期...[{}]", methodParams[0]);
logger.info("执行标识...[{}]", methodParams[1]);
logger.info("表名称 ...[{}]", methodParams[2]);
logger.info("管理机构...[{}]", methodParams[3]);
logger.info("执行场景...[{}]", methodParams[4]);
//控制台输出日志
logger.info("myXxlJobHandler execute...");
try {
//书写业务逻辑
//TODO
//写日志到调度中心日志中
XxlJobHelper.log("myXxlJobHandler execute Success...");
// 设置任务结果
XxlJobHelper.handleSuccess();
} catch (Exception e) {
logger.error("myXxlJobHandler execute Fail ...", e);
//写日志到调度中心日志中
XxlJobHelper.log("myXxlJobHandler execute Fail...");
// 设置任务结果
XxlJobHelper.handleFail();
}
}
}
三、调度中心参数传递测试
3.1. 单个参数传递
3.2. 多个参数传递
用,分割
2021-02-15,I,sys_user,86,UPDATE