官方文档:分布式任务调度平台XXL-JOB
源码及代码样例:文件 · master · mirrors / xuxueli / xxl-job · GitCode
XXL-JOB是一个开源的,具有丰富的任务管理功能以及高性能,高可用等特点的轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用!!!
默认使用mysql。
系统组成:
调度模块(调度中心): 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块; 支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover
执行模块(执行器): 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效; 接收“调度中心”的执行请求、终止请求和日志请求等。(开发人员只需编写执行器业务代码即可)
博客参考:
xxl-job(分布式任务调度平台)的介绍和使用_去撒哈拉当海盗的博客-CSDN博客_xxl-job
xxl-job的使用及简述原理_米二的博客-CSDN博客_xxl-job(优质博客,注意:部署时,xxljob中的调度中心服务和执行器服务 均支持集群部署)
优质博客:SpringBoot项目集成xxljob全纪录(图文详解)_小小张自由—>张有博的博客-CSDN博客_springboot xxljob
遇到的问题1:
xxl-job 毫无疑问是一个轻量级、学习简单的调度系统,也正是因为它轻量级因此无法满足全部业务场景,
某些情况下 你必须使用除mysql之外的数据库,例如 mssql pgsql oracle
xxl-job 管理端 admin 他的开源代码中可见 mybatis XML中很多是 mysql特有写法,这样无法用于其他数据库。
改造方法
主要是将 xxl-job-admin 改造即可
想办法去除单表操作的SQL,引入通用mapper
花费 3天改造测试时间,将xxl-job-admin 改造了支持 mysql mssql pgsql oracle 主流数据库。
具体代码 放在 https://gitee.com/banana6/xxl-job-admin-extend
遇到的问题2:
执行器微服务的服务端口server.port=8066
和 xxl.job.executor.port=9999 端口不是一个概念。执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口