一种基于客户端、服务器系统的分布式定时任务调度系统的制作方法

文档序号:8208966阅读:874来源:国知局
一种基于客户端、服务器系统的分布式定时任务调度系统的制作方法
【技术领域】
[0001]本发明属于客户端、服务器系统的任务管理技术领域,具体涉及一种基于客户端、服务器系统的分布式定时任务调度系统。
【背景技术】
[0002]目前,大多数项目工程需要有一套定时任务执行功能,即配置一个任务的启动规则(例如:开始时间,间隔执行N次,某些情况下不执行等规则),再加上任务执行的主体(具体什么任务)。对于一个大公司来说,往往有很多业务,从而产生很多项目。每个项目又有多个定时任务。对于开发人员和运维人员来说,想要知道自己应用中定时任务的运行情况是什么样的,就需要去运维那边登陆远程正式服务器进行日志查看;想要修改一些定时任务的规则,就需要修改代码或者配置文件,重启生效。运维人员维护全部项目的时候,对于任务执行情况缺乏一个完整的监控手段。

【发明内容】

[0003]本发明的目的在于提供一种能够实时监控任务执行、动态修改执行规则的基于客户端、服务器系统的分布式定时任务调度系统。
[0004]本发明提供的分布式定时任务调度系统,其构成如图1所示,主要包括:应用服务器、核心调度服务器、WEB监控服务器、消息服务器和数据库;其中:
所述应用服务器有若干个,采用分布式的集群服务器,主要是提供电子商务、充值、游戏、页面等对外业务的服务,此类服务有定时任务的功能需求,例如在每天半夜进行数据的更新操作;该应用服务器给出多个任务执行地址到核心调度服务器,每个地址就是一个任务执行入口;
所述核心调度服务器有若干个,是一种统筹服务器,可以控制应用服务器在什么时间执行任务,并且可以收集应用服务器执行任务的结果;由于任务有很多个,每个核心调度服务器中都维护了一个任务池,任务池是一个存放所有任务的地方。
[0005]所述WEB监控服务器,用于对任务的执行时间和执行逻辑进行配置,并且至少提供任务的暂停、删除、新增、查看、手动触发等功能中的任意一种,同时提供对历史任务的执行记录查看;
所述消息服务器,作为一个代理,在WEB监控服务器配置完相关信息后,WEB监控服务器发送同步信息给消息服务器,由消息服务器把同步信息转发到核心调度服务器;同步信息是指服务器之间通信的内容。
[0006]所述数据库,用于存储任务配置的信息、任务执行结束后的信息等。
[0007]本发明系统的执行流程如下(图2):
(I) WEB监控服务器负责进行任务信息的配置,配置完成后把信息数据保存进数据库中,同时至少提供任务信息的查看、新增、修改、暂停、删除等操作中的任意一种,操作后也会把对应的任务信息保存入数据库;数据库中保存的任务信息同时提供给WEB监控服务器进行查看等功能;
(2)当WEB监控服务器中的任务信息有新增、修改、暂停、删除操作中的任意一种的时候,发送一个同步信息给消息服务器;
(3)消息服务器找到所有核心调度服务器,对每个核心调度服务器发送同步信息;由于核心调度服务器在启动的时候会自动的到消息服务器上面进行注册,所以消息服务器能找到在自己这里注册的所有核心调度服务器;
(4)核心调度服务器收到通知后去数据库中取出任务,放入任务池中进行监听;
(5)当任务时间到达的时候,核心调度服务器通知应用服务器进行任务的执行,在通知应用服务器的同时,核心调度服务器在数据库中记录任务开始执行的信息;
(6)当应用服务器执行结束后,返回信息给核心调度服务器,核心调度服务器又把返回信息记录进数据库;此时WEB监控服务器可以通过数据库查看任务的执行历史。
[0008]下面对流程的各部分作进一步具体描述。
[0009]应用服务器启动的时候,首先任务执行主体初始化,生成一个唯一地址;在WEB监控服务器中配置相对应的任务信息(包含以上所说的任务主体的地址,任务执行的时间规贝U,以及其他一些相关附带属性);当配置完信息后,通知核心调度服务器,核心调度服务器根据通知过来的信息把需要新增或修改的任务加载(从数据库中取出对应的任务)进来,并加入任务池中,当监听发现有任务触发的时候找到对应的任务主体地址进行远程通知调用;当应用服务器执行结束后,应用服务器把执行结果发送回核心调度服务器。
[0010]应用服务器中包含有一个集成功能软件包。该集成功能软件包提供任务主体监听功能。在集成功能软件包中定义了标注任务主体的注解标识,在集成功能软件包启动的时候,本集成功能软件包会扫描全部使用该注解标识的任务主体从而进行监控。当这些任务主体执行结束,或者执行异常后收集成功或者异常信息报告给核心调度服务器。监听功能采用AOP技术,在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。在任务调度系统中,在应用服务器启动前,开发人员在任务执行主体上面加上集成功能软件包定义好的注解,启动的时候集成功能软件包扫描所有使用该注解的任务执行主体确认监听的范围,从而进行监控。当这些任务执行主体执行结束后,集成功能软件包把任务执行的结果信息收集起来通过dubbo协议传送给核心调度服务器。核心调度服务器收到信息后把执行结果信息、任务标识等数据存储进数据库,用来作为web历史数据查看的依据。在任务调度系统中注解则为AOP中的切面。
[0011]WEB监控服务器提供管理任务的功能及查看历史执行记录的功能,如图4所示,至少提供对任务的查看、修改、新增、删除、立即执行、及任务的历史执行计划查看功能中的任意一种。
[0012]WEB监控服务器首先配置任务执行信息内容,包含任务执行的地址、任务执行的时间规则和任务执行的应用服务器查找单元。应用服务器查找单元可以为ZooK^per或者dubbo自带的multicast工具。ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
[0013]WEB监控服务器配置完这些信息后,WEB监控服务器通过消息服务器通知多台核心调度服务器。如图3所示,核心调度服务器根据WEB监控服务器发送过来的同步信息进行对应的操作。同步信息为WEB监控服务器和核心调度服务器之间的数据发送内容,核心调度服务器根据同步信息进行相对应的任务操作(包含添加、删除、修改)。
[0014]同步信息包含两方面内容,一方面为标注同任务的操作类型为新增、删除、还是修改;另一方面为任务的唯一标示ID,此ID是WEB监控服务器中新增任务操作并且把任务信息保存进数据库中的时候自动生成的唯一标示符,用该ID可以在数据库中找到对应的任务信息。当核心调度服务器收到同步信息的时候,首先判断此通知信息的第一个值所代表的操作类型是什么,比如新增,那就根据第二个值(任务ID)去数据库中抓取任务对应的任务执行主体地址和任务执行规则,然后把
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1