文章目录
一、xxl-job任务调度中心
1.调度中心创建任务
2.调度中心创建执行器
二、执行器任务编码
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);
@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);
@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. 多个参数传递
用,作为分隔符