调度系统优化后设计
2023-01-06 17:20:20 0 举报
高并发调度系统设计
作者其他创作
大纲/内容
写入实例异常队列
72小时执行超时监控线程
循环结束
结束
循环处理结束
预触发消费线程
是
更新实例状态
更新本地缓存
否
从实例异常队列获取数据
循环
触发线程结束
是否异常
线程容错处理
循环处理开始
借助最新结束实例判断
队列是否有数据
扫描JobInfo下次触发时间在5秒内的任务且可启动标识为N的数据并通过自增属性对槽位取模与槽位比较筛选数据
提交
生成待运行实例或者延期执行
处理下游任务
获取预触发队列数据
是否超过72小时
下线
启动检查结束
触发
实例执行开始
上游任务成功校验
计算槽位结束
实例执行结束
查询
服务下线
启动检查开始
计算槽位开始
生成触发实例的线程
不通过
根据索引信息生成各节点的槽位
变跟对应jobInfo数据的可启动标识为N
累加更新队列数据所对应的正在运行时长
从正在运行实例队列数据
任务业务代码执行
回调完成
扫描JobInfo可启动标识为Y的数据并通过自增属性对槽位取模与槽位比较筛选数据
跨周期依赖校验
实例状态同步调度
获取槽位slot
rpc通信
循环开始
实例数据更新
根据服务名和分组查询
触发线程开始
实例容错线程
将实例信息复制到log_latested_finished表
通过
开始生成触发数据所需上下文
是否为结束状态
获取slot
删除正在运行实例队列的数据
任务或任务组本身业务处理
休眠
线程池
是否运行72小时
nacos
线程回收
请求子平台启动实例
相关属性写入触发队列
更新jobInfo可启动标识为Y
按任务产生线程
http请求
实例状态回调
查询槽位
休眠5秒
实例状态缓存本地
刷新Jobinfo的下次触发时间
是否触发
服务注册
请求参数跌入线程本地参队列
注册
有数据
更新实例状态未超时
生成实例和触发参数写入本地预触发队列
执行器负责均衡
生成jobInstancContext表数据
实例是否结束
异步获取线程结果
触发消费线程
写入正在运行实例队列
获取触发队列数据
消费实例上下文数据开始
0 条评论
回复 删除
下一页