1. 为什么要用第三方库Quartz来实现分布式任务管理和调度?
首先管理的目的是通过集群多节点的管理提供容错,调度的目的是保证同一任务只会被完整执行一次;之前分享过的任务调度-单体应用定时任务解决方案是在单系统的情况下,所以不存在任务管理和调度的问题,但这一类单系统存在任务业务递增、单应用任务调度处理缓慢的、单JVM资源受限等问题,为了更好的解决这一类问题并提高容错、负载均衡等就出现了第三方库Quartz的方式来实现分布式任务调度。
2. 使用方式和是实现原理请参考如下文章:
- 集群分布式(并发)部署解决方案-Spring
- Quartz集群实战与原理分析
3. 总结:
个人使用经验总结,虽然Quartz支持集群和容错,但是当我们部署同一个应用多份,通过nginx负载并且在每一个应用中配置Quartz信息,如果这个时候我需要更新一个任务的业务或者删除任务或者更新任务执行的时间,这个时候我相当于要修改多个相同应用并部署重启,这同时增加了我们运行维护的工作量。
代码语言:txt复制 (adsbygoogle = window.adsbygoogle || []).push({});