xxl-job
XXL-JOB是一个轻量级分布式任务调度框架。
它解决的问题是能在统一的界面上,方便的管理一堆定时执行的、或相互依赖的任务,让他们并行或以正确的顺序串行在一组机器上执行,并且对执行结果进行管理,包括执行日志,失败通知等。
官网
https://www.xuxueli.com/xxl-job/
源码仓库
https://github.com/xuxueli/xxl-job
编译环境
Maven3+
Jdk1.8+
运行环境
Jre1.8+
Mysql5.7+
任务运行模式
任务运行模式是指任务通过何种代码部署(粘合)到任务调度中心,默认的方式支持:Shell、Python、Nodejs、PowerShell等,比如我在下面添加了Python3
com.xxl.job.core.glue.GlueTypeEnum
1 | BEAN("BEAN", false, null, null), |
配置文件
调度中心配置
1 | ./xxl-job-admin/src/main/resources/application.properties |
主要要确保数据库(xxl-job, datasource)配置正确
执行器配置
1 | ./xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties |
主要注意两个地方:
调度中心地址
xxl.job.admin.addresses
执行器appname,相同appname的执行器构成一个执行器集群,在调度时不区分,不同的appname在配置任务时可选择由哪个appname的执行器执行
xxl.job.executor.appname
数据库初始化
1 | ./doc/db/tables_xxl_job.sql |
构建方法
重新构建
mvn clean package
增量构建
mvn package
运行调度中心
构建完默认会生成
1 | ./xxl-job-admin/target/xxl-job-admin*.jar |
可以重命名并复制到其他路径,启动命令
1 | java -jar xxl-job-admin*.jar |
默认通过
1 | http://localhost:8080/xxl-job-admin/ |
访问调度中心,端口和路径在配置文件application.properties中可修改
用户名admin,密码123456,可以在登录后修改
运行执行器
构建完默认会生成
1 | ./xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/xxl-job-executor*.jar |
可以重命名并复制到其他主机,启动命令
1 | java -jar xxl-job-executor*.jar |
启动后会根据配置自动向调度中心注册自己