XXL-JOB调度中心、执行器、Job之间的关系

一、调度中心

职责

  • 管理所有 Job 的配置(CRON 表达式、路由策略等)

  • 触发任务调度(基于 Quartz)

  • 监控执行状态和日志

  • 管理执行器集群

二、执行器

职责

  • 注册到调度中心(心跳机制)

  • 接收调度指令

  • 加载并执行具体 Job

  • 返回执行结果和日志

三、Job

职责

  • 实现 XxlJob 接口或使用注解

  • 执行业务代码(如对账、报表生成)

  • 返回执行结果

三者协作流程:

1、任务注册(启动时)

执行器在启动时会向调度中心发送注册请求,包含执行器的标识信息(如名称、IP 地址、端口等)。这个过程确保调度中心能够识别和管理所有可用的执行器。

2、任务触发(调度时)

调度中心根据设定的调度策略使用 RESTful API 将任务信息分发给指定的执行器。请求中包含任务 ID、执行参数和调度时间等信息。

3、任务执行

执行器根据接收到的任务信息,调用用户定义的任务处理JobHandler(如 Java 方法、Python 脚本等),开始执行任务。

4、结果反馈

执行器在完成任务执行后,通过 RESTful API 将执行结果(如成功、失败、执行时间、日志等)回调给调度中心。通常是通过发送一个 POST 请求来实现的。

当Job已经注册到执行器中,执行器也会将Job的信息保存到一个JobHandler 注册表(ConcurrentHashMap),在每次执行器向调度中心发送心跳的时候,一起发送到调度中心,心跳时发送的数据示例如下:

{
  "appname": "wallet-service",
  "address": "192.168.1.100:9999",
  "jobHandlers": [    // 关键信息
    "walletSumDailyTransactionJob",
    "walletCleanupJob",
    "userSyncJob"
  ]
}

这样调度中心就知道了,这个执行器能不能执行用户在页面上配置的任务。

注:当代码中有某个Job时,该Job注册到执行器中,执行器注册到调度中心后。只要调度中心配置了某个任务(配置执行器,选择了JobHandler、cron表达式等),调度中心就可以直接调用具体的执行器执行任务,而不需要执行器重启

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值