1. 首先导入任务
- 首先需要手动创建任务或是通过
AIMaster
和Dataworks
导入任务到ow_w_watch_tasks
表中
2. 任务分类
- 按照来源分类
APP(AppWatchTask.class, 1),
BSE(BaseWatchTask.class, 2),
DQC(DqcWatchTask.class, 3),
BLINK(BlinkWatchTask.class, 4);
- 按照监控分类
周期性任务
固定周期任务
3. 监控任务的状态
UNKNOW(0), NORMAL(1), ERROR(2), WARN(3), RUNNING(4), WAITTING(5), NOT_RUN_CYCLE(6), CHECK_TIMEOUT(7);
4. 监控探测器
Explorer 任务探测器父类
CycleExplorer 周期性任务
GreaterThenDayLevelExplorer
DayExplorer
MonthExplorer
WeekExplorer
UnGreaterThanDayExplorer
HourExplorer
MinuteExplorer
FixedExplorer 固定周期任务
5. 任务状态变化流程
- 首先是经过实例化各类资源探测器会通过@Scheduled调度开始监控
- 通过线程池中空余线程数量等参数数据库关联 task 表和 对应的 task_process 表来获取到需要进行监控的任务,并修改process表运行状态为1表示运行中
- 通过
TaskStatusAnalyzer
来分析各个任务,这个接口包含两个方法,首先是判断该任务是否支持该分析器,另一个方法就是通过任务信息去远程拉取任务状态,主要的分析器有
TaskStatusAnalyzer
OthersTasksStatusAnalyzer
BaseTaskStatusAnalyzer
DqcTaskStatusAnalyzer
AppTaskStatusAnalyzer
BlinkTaskStatusAnalyzer
分析的大致过程是通过调用远程的接口获取到任务的最新状态结果,然后将结果解析,并封装成
MessageDetail
对象,并将Message封装到Task对象中然后将Message存入到数据库,同时将
MonitorTask
的最新一条记录存入到monitor_task
表中同时将统计信息写入到小时统计表中
最后页面查询经过表关联,
ow_w_watch_tasks
关联ow_m_monitor_tasks
的最新一条记录就能看到这个任务的状态变化