XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
我们这里只简单快速的用XXL-JOB实现一个单机任务调度。
详细学习请前往官方地址中文版:http://www.xuxueli.com/xxl-job
源码仓库地址 | Release Download |
---|---|
https://github.com/xuxueli/xxl-job | Download |
http://gitee.com/xuxueli0323/xxl-job |
下载:
解压出来之后导入IDE,会看到代码里由三个模块:
xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor-samples:里面包含集中类型的 执行器示例
1.执行doc文件下的sql文件,初始化数据库
修改xxl-job-admin 模块下的 application.properties文件,配置上面初始化的数据库
将xxl-job-admin 打包部署。启动。
访问http://127.0.0.1:8080/xxl-job-admin/
我们用springboot创建一个执行器项目xxjobtest
引入依赖
<!--xxl-job-->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.2.0</version>
</dependency>
将执行器示例xxl-job-executor-sample-springboot下的XxlJobConfig复制到项目下。
配置项目的application.properties文件
1.配置xxl-job-admin 的地址
2.给当前执行器服务命名
# web port
server.port=8081
# no web
#spring.main.web-environment=false
# log config
logging.config=classpath:logback.xml
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### xxl-job, access token
### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=
### xxl-job executor appname
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
xxl.job.executor.appname=xxl-job-executor-test
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9999
### xxl-job executor log-path
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job executor log-retention-days
### 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效;
xxl.job.executor.logretentiondays=30
创建执行任务,使用@XxlJob注解在需要执行的方法上。
@Component
public class DemoJobHandler{
@XxlJob("firstJob")
public ReturnT<String> execute(String s) throws Exception {
System.out.println("任务执行。。。。。。");
return ReturnT.SUCCESS;
}
}
启动项目
在XXL-JOB界面添加执行管理器
AppName 与配置文件中的name保持一直
注册方式选用自动注册
在任务管理中选择刚才添加的执行器
添加任务
执行器选择自己添加的,JobHandler 填写@XxlJob("firstJob")注解中的名字
点击立即执行一次
后台执行成功