1. 为什么要使用XXL-JOB?
- 任务调度-单体应用定时任务解决方案(存在性能、扩展、容错等问题)
- 任务调度-第三方库Quartz实现分布式任务管理与调度(存在更新任务要同时配置部署多个应用的问题)
如果上述二种方式都不满足你的需求,我建议你尝试使用XXL-JOB或其他开源调度平台。
XXL-JOB功能:
- 拥有集群任务管理平台,统一管理任务调度平台上调度任务,负责触发调度执行,提升调度系统容灾和可用性,可通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。
- 可自定义开发执行器(实际业务代码开发),负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中,同业务执行器可无限水平扩展(部署多份),通过调度中心设置策略进行负载调度。
- 执行器管理
- 用户管理
- 调度日志
- 任务管理
- 运行报表(执行状态统计)
- 支持Java、Shell、Python、PHP、Nodejs、PowerShell GLUE方式任务调度
- 支持多种路由策略:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移、分片广播
- 失败重试
- 报警邮件提醒
- ....
2. 架构、配置使用方式请参考官方github:
https://github.com/xuxueli/xxl-job/
3. 总结:
个人觉得XXL-JOB的实用功能如下:
- 比较简单,开发配置容易上手
- 可以部署同一任务多实例路由,路由策略丰富
- 可以管理任务与任务之间的先后顺序,顺序执行
- 有邮件报警功能和可视化运行报表功能,实时监控并处理有问题的任务
- 可以手动执行失败的任务
- 拥有失败重试、任务超时的机制
- 运行模式也支持多种,可支持在线自定义任务业务
- 任务都拥有独立负责人,可根据业务进行权限管控
- 拥有调度日志,实时查看调度情况
- 执行器还有自动注册到调度中心的功能
- 开源,有项目源码,完全可以自定义开发调度中心Web端(Bootstrap ftl)
- .....
(adsbygoogle = window.adsbygoogle || []).push({});