说完了 xxl-job 的执行器原理,再来聊聊调度中心是如何调度任务的

前言

在上一篇 xxl-job 执行器原理分析 一文中,我们提到了 xxl-job 框架中包含了两个核心模块:调度中心执行器, 其中调度中心主要负责 任务的调度 , 而执行器负责 任务的执行, 两者各司其职。 紧接着我们通过画图的方式对 执行器 的内部构造进行了分析,并且还对 Job 的执行流程进行了梳理。

本文我们继续围绕任务的调度流程对 调度中心 进行剖析, 内容依然参照 xx-job v2.x 版本的源码。

正文

再看一遍 xxl-job 架构图:
在这里插入图片描述
调度中心主要提供了两个功能: 系统管理 和 任务调度。其余的都是一些辅助功能。

  • 系统管理正如图中所示的那样, 包括任务管理、执行器管理、日志管理。还提供了管理界面。
  • 任务调度就是负责从数据中心拉取任务,并按照执行时间将任务投递给执行器。

调度器的组成结构

在这里插入图片描述

两个核心线程

当调度中心启动后,会启动以下两个线程:

  1. schedulerThread
    scheudlerThread主要做如下两件事情:
  • 从数据中心(db),也就是 xxl_job_info表中扫描出符合 条件 1 的任务, 条件1 限制如下:
    • 任务执行时间 小于(当前时间 + 5 s)
    • 限制扫描个数, 这个值是动态的,会根据后面的提到的 快慢线程池 中线程数量有关系。
    count = treadpool-size * trigger-qps  (each trigger cost 50ms, qps = 1000/50 = 20) 
    
    treadpool-size = (getTriggerPoolFastMax()</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值