分布式定时任务预习 | 青训营笔记

112 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天

分布式定时任务发展历史

Linux命令-CronJob

在Job上加上了时间调度

单机定时任务-Timer、Ticker

这些定时器的使用方法都来自Golang 原生 time 包,使用time包可以用来执行一些定时任务或者是周期性的任务。

单机定时任务-ScheduledExecutorService

有线程池和实现循环或延迟任务的特性

任务调度- Quartz

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合,也可以单独使用。简而言之,Quartz就是基于Java实现的任务调度框架,用于执行你想要执行的任何任务。

什么是分布式定时任务

把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。叫做分布式定时任务。

为什么要采用分布式定时任务

单点定时任务的缺点

功能相对简单,交互性差,任务部署效率低,开发和维护成本比较高,不能很好的满足各系统定时任务的管理和控制,尤其在多系统的环境下更加明显; 许多任务都是单机部署,可用性差; 任务跟踪和告警难以实现。

分布式定时任务的优势

通过集群的方式进行管理调度,大大降低了开发和维护成本; 分布式部署,保证了系统的高可用性,伸缩性,负载均衡,提高了容错; 可以通过控制台部署和管理定时任务,方便灵活高效; 任务都可以持久化到数据库,避免了宕机和数据丢失带来的隐患,同时有完善的任务失败重做机制和详细的任务跟踪及告警策略。