这是我参与「第五届青训营」伴学笔记创作活动的第 12 天
定时任务的发展历程
定时任务是指系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程。
Linux 命令: CronJob
CronJob 是 Linux 中历史最悠久的定时任务程序。它写起来简单易懂,每一行代表一个定时任务。
它有6个参数,从左往右分别为 分、时、天、月、周、命令。
表示的就是在哪一个时刻执行任务。
Timer、Ticker
Timer 是定时器的意思,它表示每间隔一段时间重新执行一次命令。这是在编程语言的级别上实现的功能,多数编程语言都支持定时器。
Quartz
Quartz 是 Java 的一个任务调度系统,它相当于将 CronJob、 Timer 进行结合,然后加入一些如暂停、继续、取消等管理操作。
分布式任务
分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。
所有需要定时、延时、周期性执行任务的业务场景,都可以考虑使用分布式定时任务
核心架构
通常来说,定时任务调度系统由以下几个部分组成:
- 执行器:执行定时任务的具体模块
- 调度器:管理定时任务的执行、关闭
- 触发器:通知定时任务的执行
还有一个管理模块,用于管理整个系统、跟踪任务执行状况。
功能架构
分布式任务系统是一个相当复杂的系统。
触发器
触发器的实现方法有2种:
- 扫描 - 执行
- 时间轮