/my-job

仿 xxl-job 的分布式定时任务调度平台,提供分布式计算能力

Primary LanguageJava

my-job

仿xxl-job,消除调度中心单点的分布式定时任务调度平台

首先来看一下xxl-job的架构图: image

其中主要有两个重要部件

  1. 调度中心:负责调度任务,监控任务执行情况
  2. 执行器:负责接收指令,执行任务

在xxl-job中,调度中心负责调度任务,监控任务执行情况,而执行器负责执行任务。调度中心和执行器之间通过rpc进行通信,调度中心将任务发送给执行器执行,执行器执行完任务后将执行结果返回给调度中心。

实际的一条任务执行的流程如下:

  1. 从数据库中找出这段时间需要被执行的任务
  2. 将任务发送给对应的执行器
  3. 执行器执行任务

可以看到,在xxl-job中,调度中心需要执行1 2两个步骤,而执行器只需要执行任务即可。

因此,本着一个应用只执行一个功能的原则,将调度中心和执行器分开,消除执行器单点。

因此,my-job的基础部件主要有三个:

  1. 监控中心:负责调度任务,监控任务执行情况和执行器的健康情况
  2. 触发器:负责触发任务,将任务发送给执行器执行
  3. 执行器:负责执行任务

考虑对间隔时间长短不同的任务建不同的表,可行性待验证

  • 初步考虑为两个快慢线程