任务调度详细设计说明书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MainService为主线程,用于监控SCH_SchduleControl任务调度控制表中的批量指令,同时调用该批量。发起和管理每个任务线程的启动和中断,以及插件包的加载、日志、配置等信息初始化。

TaskSchedulePool为任务调度的线程池,由主线程创建,每个批量启动后就会创建一个TaskScheduleControl线程来处理这个任务的具体执行内容。

TaskScheduleControl线程实现类,每个单独的任务创建一个实例。用于控制一个任务中每个作业的执行,按依赖关系先后顺序调用作业。作业的状态更新和读取通过调用JobExchangeComponent类实现;作业的具体执行通过Quartz框架提供的线程池来实现。

JobExchangeComponent类实现作业中的数据结构组建和更新,当作业执行状态变更时,更新相应的数据结构和知识库中的内容;读取当前要处理的作业队列。

Quartz 封装第三方框架,提供异步作业执行的线程池,用于定时执行指定作业。

JobExecute提供通用作业执行接口,同时提供监听器,当作业执行完成后,返回执行结果到JobExchangeComponent。通过实现通用作业接口来调用各种功能。

3.1 任务调度服务主模块

3.1.1系统初始化

载入系统的配置项的数据,包括数据库驱动、连接参数;服务器标识、任务扫描频率、插件目录、是否写事件序列表等。

根据插件目录,载入插件类。

数据库访问实例化。

任务线程池初始化。

Service TaskScheduleControl 创建新批量任务JobExchangeComponent 获取作业队列

返回可执行的作业列表

更新作业状态为运行中JobItem TaskPersistDB 创建作业更新组件

返回作业更新对象

初始化作业列表返回持久化更新对象更新作业状态为运行中

创建并执行作业返回执行结果更新作业状态为成功或失败

更新作业树的状态

更新作业状态为成功或失败

重复读取作业队列

检查新任务

循环检查判断树状态,确定是退出还是继续

JobListener

执行结束

作业开始执行

3.2.3 数据结构定义

相关文档
最新文档