分布式任务调度 调度介绍

分布式任务调度平台

分布式任务调度平台产生历程

该平台主要用来解决公司内部一些定时调度任务的管理,避免出现这个任务在那个机子运行,或者那个任务在其它机子运行从而造成任务分散,机子分散,不便于管理和分析还有升级。

所以需要对任务,机子(以后统称节点)进行统一性的管理和操作。任务管理需要很好的进行任务添加,上传,预警,升级,日志查看,任务隔离,资源释放等相关的操作。而节点需要很好的进行添加,执行任务,故障转移,节点升级,节点监控,节点预警等一系列需要考虑到和解决的问题!

#分布式调度平台架构# 整体架构图 整体架构图

以上的分层,每个层代表一个项目,其中

  1. 应用层:目前只实现了响应式Web端(项目路径:~/ND.Web/ND.FluentTaskScheduling.Web 涉及技术:adminlte,mvc)
  2. 服务层:(项目路径:~/ND.Service/ND.FluentTaskScheduling.WebApi,涉及技术:ef,autofac,仓储模式,webapi,log4net)
  3. windows服务层(也叫节点层,将来需作为windows服务部署):(项目路径:~/ND.NodeService/ND.FluentTaskScheduling.NodeService,涉及技术术语:AppDomain,Quartz.net,性能计数器,心跳,任务池,命令池,监控池,扫描器…)

    分布式任务调度平台目前实现的功能列表

  4. 命令管理(命令列表(编辑,查看),命令队列列表(查询,查看日志),命令队列执行日志列表(查询))
  5. 任务管理(任务列表(添加,查询,开启,暂停,停止,查看日志,编辑),任务管理日志列表(查询))
  6. 节点管理(节点列表(新增,查询,编辑,日志查看),节点监控组件列表(查询),节点日志列表(查询))
  7. 性能分析(任务性能分析(可视化查看cpu,内存,硬盘指标),节点性能分析(可视化查看可用内存,cpu,占用空间,io读写,iis请求))
  8. 用户管理(用户列表(新增,查询,编辑))
  9. 登录

##Next To Do List##

  1. 实现任务分组(任务克隆)
  2. 实现任务调度节点(目前任务调度暂不支持自动调度,都是在添加任务后手工指定节点)
  3. 实现任务调度的负载均衡
  4. 实现执行节点的故障转移
  5. 实现任务调度节点集群和执行节点集群支持,从而实现高可用
  6. 实现分布式任务调度web控制台能直接从平台去控制节点的启动和关闭,还有转移节点下的任务
  7. 目前的存储层主要都是sqlserver,以后命令队列要换成RabbitMQ或者其它第三方的消息中间件,有待考量!
  8. 目前想到的集群的实现方案是Zookeeper,类似还有Consul等方案,这个后期考量!
  9. 目前的任务调度是基于quartz.net的,这个感觉需要理解corn表达式,虽然很好理解,但是想着后期能不能换成sqlserver作业调度计划里面的那种计划实现,有待后期研究。 ##分布式任务调度平台部分截图## 登录界面 统计页面 添加任务 任务列表

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦