Elastic-job + Quartz实现企业级定时任务

下栽地址:https://www.itwangzi.cn/2407.html

Elastic-job + Quartz实现企业级定时任务
打开网易新闻 查看精彩图片
Elastic-job + Quartz实现企业级定时任务

Elastic-Job是一款分布式任务调度框架,而Quartz是一个功能丰富的开源作业调度库。结合使用这两个框架可以实现企业级定时任务的需求。

下面是使用Elastic-Job和Quartz实现企业级定时任务的一般步骤:

  1. 搭建基础环境:
    • 配置好项目的依赖,包括Elastic-Job和Quartz的相关依赖。
    • 确保项目中有一个数据库,用于存储任务调度相关的数据。
  2. 配置Quartz:
    • 在项目中配置Quartz的相关参数,如数据源、调度器等。
    • 创建Job类,实现具体的定时任务逻辑。
    • 配置JobDetail和Trigger,定义任务的执行时间和执行逻辑。
  3. 配置Elastic-Job:
    • 在项目中配置Elastic-Job的相关参数,如注册中心地址、作业执行器等。
    • 创建作业(Job),并配置作业的执行方式和调度策略。
    • 集成Quartz和Elastic-Job:
    • 在Quartz的Job类中,调用Elastic-Job的执行器执行具体的作业任务。

打开网易新闻 查看精彩图片

quartz的分布式调度策略是以数据库为边界资源的一种异步策略。各个调度器都遵守一个基于数据库锁的操作规则从而保证了操作的唯一性。同时多个节点的异步运行保证了服务的可靠。但这种策略有自己的局限性:集群特性对于高CPU使用率的任务效果很好,但是对于大量的短任务,各个节点都会抢占数据库锁,这样就出现大量的线程等待资源。这种情况随着节点的增加会越来越严重。

ElasticJob 是一个分布式调度解决方案,由两个相互独立的子项目 ElasticJob Lite 和 ElasticJob Cloud 组成。ElasticJob Lite 定位为轻量级无中心化解决方案,使用 jar 的形式提供分布式任务的协调服务;ElasticJob Cloud 采用自研 Mesos Framework 的解决方案,额外提供资源治理、应用分发以及进程隔离等功能。它通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的作业生态。