任务监控程序设计与实现总结

1.简介

1.1 上游系统

1.上游系统不定时发送计划xml文件,该xml包含一组<类型:任务>;上游系统收到文件后,需要返回一个回执。

2.不定时发送状态上报命令,询问计划执行情况。

1.2 监控程序

     监控系统类似消息队列中的broker,维护任务队列,接收上游系统下发的计划,并将任务调度给下游系统执行。

1.监控程序维护一组任务队列,根据下游系统发送的任务状态信息,更新对应任务状态。若下游系统空闲,为其分配新的任务。

2.下游系统离线后,监控程序需要将该系统未完成的任务重新分配。

3.监控程序重启后,可读取已保存的任务信息重建<类型:任务队列>,通过下游系统上报的状态信息重建<下游系统:当前任务>关联。

4.当任务状态发生变动时,需要向上游系统汇报状态信息。

1.3 下游系统

1.每个下游系统处理特定类型的任务,同一类型的多个任务可分配到多个下游系统执行。

2.下游系统定时发送当前任务状态(心跳协议)。

下游系统的状态转换如下图所示:

2.类图设计

1.GlobalTaskBuffer采用单例模式,保存了系统中所有的任务信息,根据任务类型的不同,构建了不同的任务队列。

2.GlobalDownSysBuffer采用单例模式,保存了所有下游系统的信息,每个DownSys对应一个当前任务CurTask,CurTask由监控程序调度分配,初始状态为NULL。

2.1 GetDownSys方法会根据IP和Port搜索对应的DownSys对象,若未找到,创建一个新的DownSys对象并加入到GlobalDownSysBuffer中;

2.2 Heartbeat方法会累加DownSys对象的HeartBeatCount,若HeartBeatCount的值超过设定的阈值,则系统认为该DownSys已离线,执行ClearDieDownSys方法做清理工作(若该DownSys对应的任务正在执行,则认为该任务已执行错误,重新分配)。HeartBeat方法由Control的HeartBeatTimerProc定时调用。

3.BaseHandler处理与上下游系统之间的交互

3.1 UpSysHandler接收并解析上游系统发送的计划xml,发送文件回执;接收任务上报命令,构建和发送任务执行状态回执。

3.2 DownSysHandler将任务分配给下游系统,接收和解析下游系统发送的任务状态信息,更新任务状态,维护<DownSys,Task>映射等。

4.Control类借助其他类,处理与上下游之间的交互。

3.处理流程(时序图)

 

1 处理与上游系统的交互

2 处理与下游系统的交互

时间: 2024-10-31 10:32:38

任务监控程序设计与实现总结的相关文章

基于Android平台的i-jetty网站智能农业监控系统

基于android平台i-jetty网站的智能农业监控系统 摘要:传统的监控系统,一般是基于PC的有线通信传输,其有很多不足之处,如功耗较高.布线成本高.难度大,适应性差,可扩展性不强,增加新的通信线路需要再次布线施工,而且维护起来也比较麻烦,一旦线路出问题,需要繁琐的检查.而嵌入式Web监控系统是基于物联网技术,其无线通信技术具有成本低廉.适应性强.扩展性强.信息安全.使用维护简单等优点. 智能农业中,种植大棚是通过大棚内安装温湿度以及光照传感器,来对农作物的环境参数进行实时采集,由Web监控

20145326 《Java程序设计》第6周学习总结

20145326 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 一.使用InputStream与OutputStream 1.串流设计的概念 想活用输入/输出API,一定要先了解Java中如何以串流抽象化输入/输出概念,以及InputStream.OutputStream继承架构.如此一来,无论标准输入/输出.文档输入/输出.网络输入/输出.数据库输入/输出都可以用一致的操作来处理.Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象,其实数据就好比水,串

20145331《Java程序设计》第5周学习总结

20145331<Java程序设计>第5周学习总结 教材学习内容总结 第八章 概述 Java异常机制主要依赖于try.catch.finally.throw.throws五个关键字. 语法格式如下: try { 被检代码; } catch(异常类 变量) { 处理异常的代码(处理方式): } 关键词try后的一对大括号将一块可能发生异常的代码包起来,称为监控区域.Java方法在运行过程中出现异常,则创建异常对象.将异常抛出监控区域之 外,由Java运行时系统试图寻找匹配的catch子句以捕获异

Linux程序设计学习笔记----System V进程间通信(信号量)

关于System V Unix System V,是Unix操作系统众多版本中的一支.它最初由AT&T开发,在1983年第一次发布,因此也被称为AT&T System V.一共发行了4个System V的主要版本:版本1.2.3和4.System V Release 4,或者称为SVR4,是最成功的版本,成为一些UNIX共同特性的源头,例如"SysV 初始化脚本"(/etc/init.d),用来控制系统启动和关闭,System V Interface Definitio

分布式监控开发 01 需求

为什么要做监控? zabbix已经这么强大了,为什么要写一个监控 –熟悉IT监控系统的设计原理. 自己写的时候肯定有很多事更zabbix相匹配的. –开发一个简版的类Zabbix监控系统.为以后团队写监控做准备 zabbix在2K以上数量机器的时候,明显会吃力.小米也正是由于这个自己写了open-falcon.那么如果以后我们遇到大数量的服务器的时候,完全也会基于公司的业务去写一个监控. 那么现在练练手也是完全OK的. –掌握自动化开发项目的程序设计思路及架构解藕原则. 监控系统需求讨论 1.可

20145216 史婧瑶《Java程序设计》第6周学习总结

20145216 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 输入/输出 10.1 InputStream与OutputStream 如果要将数据从来源中取出,可以使用输入串流,若将数据写入目的地,可以使用输出串流.在java中,输入串流代表对象为java.in.InputStream实例,输出串流代表对象为java.io.Outputstream实例. 在来源与目的地都不知道的情况下可以设计一个通用的dump()方法,该方法接受InputStream与OutputStrea

基于MCP2515的Linux CAN总线驱动程序设计

MCP2515简介 MCP2515是一种独立的CAN总线通信控制器,是Microchip公司首批独立CAN解决方案的升级器件,其传输能力较Microchip公司原有CAN控制器(MCP2510)高两倍,最高通信速率可达到1Mbps.MCP2515能够接收和发送标准数据帧和扩展数据帧以及远程帧,通过两个接收屏蔽寄存器和六个接收过滤寄存器滤除无关报文,从而减轻CPU负担. MCP2515主要功能参数及电气特性如下: (1)支持CAN技术规范2.0A/B, 最高传输速率达到1Mbps: (2)支持标准

《C#网络编程高级篇之网页游戏辅助程序设计(扫描版)》

<C#网络编程高级篇之网页游戏辅助程序设计>通过编写C#网络编程语言中具有代表性的实例,向读者深入细致地讲解了如何利用C#语言进行网页游戏辅助程序设计.本书通过大量的代码引导读者一步步学习和掌握C#的网络应用编程的方法和网页游戏辅助程序的设计技术. <C#网络编程高级篇之网页游戏辅助程序设计>涉及的领域包括多线程编程技术.socket套接字编程.tcp协议编程.http协议编程.远程控制技术.木马技术.模拟键盘和鼠标技术.网页游戏辅助程序设计技术等. <C#网络编程高级篇之网

JavaScript高级程序设计44.pdf

unload事件 与load事件对应的是unload事件,这个事件在文档被完全卸载后触发,只要用户从一个页面切换到另一个页面,就会发生unload事件,最多的情况是清除引用,避免内存泄漏 与load事件类似,也有两种指定onunload事件的处理程序方式 EventUtil.addHandler(window,"unload",function(event){ alert("Unloaded"); }); 为元素添加特性 <body onunload=&quo