工作中使用到业务场景,实时接入大量增量数据,使用xxl-job进行开发支持,现已完成,闲暇之时,分享一下成功,不多言,直接上步骤(个人手写,吸取所有建议)
注:以maven项目为例
配置步骤如下:
1. 配置xxl-job中央仓库
com.xuxueli
xxl-job-core
${最新稳定版本}
2. 项目中执行器配置,项目引入xxl-job-executor.properties
### xxl-job admin address list:调度中心部署跟地址:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调"。
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### xxl-job executor address:执行器"AppName"和地址信息配置:AppName执行器心跳注册分组依据;地址信息用于"调度中心请求并触发任务"和"执行器注册"。执行器默认端口为9999,执行器IP默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用。单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.appname=xxl-job-executor-sample
xxl.job.executor.ip=
xxl.job.executor.port=9999
### xxl-job, access token:执行器通讯TOKEN,非空时启用
xxl.job.accessToken=
### xxl-job log path:执行器运行日志文件存储的磁盘位置,需要对该路径拥有读写权限
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler/
### xxl-job log retention days:执行器Log文件定期清理功能,指定日志保存天数,日志文件过期自动删除。限制至少保持3天,否则功能不生效;选填
xxl.job.executor.logretentiondays=-1
3. 执行器组件配置 ,项目引入 applicationcontext-xxl-job.xml
至此,配置完成,项目已支持使用xxl-job调度中心
4. 测试,代码开发(以常用BEAN模式为例)
/**
* 开发步骤:
* 1、新建一个继承com.xxl.job.core.handler.IJobHandler的Java类;
* 2、该类被Spring容器扫描为Bean实例,如加“@Component”注解;
* 3、添加 “@JobHander(value="自定义jobhandler名称")”注解,注解的value值为自定义的JobHandler名称,该名称对应的是调度中心新建任务的JobHandler属性的值。
* 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
*
*/
@Component
@JobHandler(value = "demoJobHandler")
public class demoJobHandler extends IJobHandler{
@Override
public ReturnT execute(String params) throws Exception {
System.out.println("Hello xxl-job");
//日志使用,param为xxl-job任务配置参数,选填
XxlJobLogger.log("执行任务"+param));
return ReturnT.SUCCESS;
}
}
5. 调度中心配置 - 执行器管理
6. 调度中心配置 - 任务管理
以上全部配置完成