龙空技术网

分布式定时任务最全详解(图文全面总结)

mikechen的架构笔记 113

前言:

而今兄弟们对“数据库定时任务”大致比较重视,姐妹们都需要分析一些“数据库定时任务”的相关知识。那么小编也在网络上搜集了一些对于“数据库定时任务””的相关知识,希望各位老铁们能喜欢,咱们一起来了解一下吧!

分布式定时任务是非常核心的分布式系统,下面我就全面来详解分布式定时任务以及分布式定时任务框架@mikechen

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

分布式定时任务

分布式定时任务是指将任务分布在多个节点上并按照预定的时间执行的任务。

分布式定时任务应用

分布式定时任务常常用于需要周期性执行的批处理任务、数据同步任务、定时报表生成等场景。

如下图所示:

很多业务场景需要,我们某一特定的时刻去做某件任务,比如:定时备份数据库、定时备份文件系统、定时生成各种业务报表、定时触发业务流程...等等。

分布式定时任务框架1.quartz

Quartz 是一个开源的任务调度框架,支持分布式部署,可以实现复杂的任务调度需求,如基于日历、间隔、CRON 表达式等的任务调度。

Quartz 的核心组件主要包括以下几个:

1.Scheduler(调度器)

调度器是 Quartz 的核心组件之一,负责调度和执行作业。

它可以加载作业和触发器,并根据配置的时间表和触发条件调度作业的执行。

2.Job(作业)

作业是需要定时执行的任务或业务逻辑的封装,在 Quartz 中,开发人员需要实现 Job 接口来定义具体的作业逻辑。

每个作业都有自己的执行方法,Quartz 调度器会按照配置的时间规则或触发器来调度执行作业。

3.Trigger(触发器)

触发器用于定义作业的执行时机。它确定了作业何时被调度执行。

Quartz 提供了多种类型的触发器,包括 SimpleTrigger、CronTrigger 等。

SimpleTrigger 用于一次性或重复执行简单的任务,而 CronTrigger 则允许根据 Cron 表达式定义更灵活和复杂的调度规则。

4.JobDetail(作业详情)

JobDetail 是作业的详细信息,包括:作业的类名、作业的名称、所属的组名等。

每个作业都有对应的 JobDetail,用于告诉 Quartz 如何执行这个作业。

5.JobStore(作业存储)

JobStore 是 Quartz 中负责存储作业和触发器信息的组件,它可以将作业和触发器的信息持久化到数据库中,以确保在应用重启后能够恢复作业调度状态。

2.elastic-job

Elastic-Job是一款基于Java开发的分布式任务调度框架,Elastic-Job包含两个独立的子项目:Elastic-Job-Lite和Elastic-Job-Cloud。

1.Elastic-Job-Lite

Elastic-Job-Lite 是 Elastic-Job 的一个子项目,主要用于简化分布式任务调度开发。

它提供了简单的 jar 包形式的分布式任务协调服务,Elastic-Job-Lite 主要面向简单的任务调度场景,如:定时任务、批处理等。

2.Elastic-Job-Cloud

Elastic-Job-Cloud 是 Elastic-Job 的另一个子项目,它是一个基于 Mesos 和 Docker 的分布式任务调度框架。

与 Elastic-Job-Lite 不同,Elastic-Job-Cloud 提供了更丰富的功能和更强大的扩展性,包括:资源治理、应用分发、进程隔离等服务。

Elastic-Job-Cloud 更适用于复杂的任务调度场景,如大规模数据处理、流式计算等。

3.xxl-job

XXL-Job 是一个功能强大且易于使用的分布式任务调度平台,通过它可以方便地实现各种任务调度需求,并提供了丰富的监控和管理功能。

XXL-Job是大众点评员工,于2015年发布的分布式任务调度平台,架构如下图所示:

XXL-Job 的主要功能包括:

任务调度管理: 提供了任务的新增、修改、删除、暂停、恢复等管理功能,通过可视化界面操作,简化了任务调度的配置和管理过程。任务执行日志: 记录任务的执行日志,包括执行时间、执行结果、执行耗时等信息,方便用户查看和分析任务的执行情况。分布式任务调度: 支持在分布式环境下部署和调度任务,通过调度中心进行统一管理,实现任务的分发和执行。任务执行器: 提供了灵活的任务执行器接口,支持多种任务类型的执行,包括简单的 Java 任务、Shell 脚本任务等。任务监控与报警: 提供了任务执行状态的实时监控和报警功能,用户可以及时发现任务执行异常并采取相应的措施。

以上就是分布式定时任务的介绍,更多分布式架构内容,请查看:分布式架构设计(全部合集),建议收藏!

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

标签: #数据库定时任务