基于web服务的任务调度方法_2

文档序号:8208976阅读:来源:国知局
任务调度服务端请求一分析请求内容一异步调用API端的具体实现函数一发送响应信息。
[0020]具体来说,为了实现任务的准确有效调度,任务调度服务集成有Quartz, net框架的WEB服务。这样,在WEB服务启动时,实例化至少一个调度器,通过WEB服务器从数据库(SQL Server 2008数据库)中读取任务的配置信息,将Quartz对象装载到调度器其中,启动调度器即可。并且,所涉及的Quartz对象为Triggers及Jobs构成,可完成对任务的定时调度。
[0021]与之对应的是,采用的API端为具体任务的业务逻辑实现端。并且,API端的程序继承自定义基类,能根据自定义基类的流程,自动完成对任务调度服务端发送的HTTP请求进行分析,并响应分析结果。
[0022]就本发明一较佳的实施方式来看,本发明采用的自定义基类为模板方法类,其定义了 API端接受任务调度服务端HTTP请求,可分析请求内容,并发送HTTP响应,异步调用API自主的实现方法,最终发送回写信息。并且,为了避免数据出错,配置信息为任务唯一标识,其包括有所属分组、Cron表达式、API端Url、生成Quartz对象。具体来说,Trggers(是Quartz对象,是一个定时触发器)是定时触发器,根据Cron表达式定时触发Jobs的运行。而Jobs是自定义的程序。
[0023]在实施本发明的时候,所有的Jobs做同一件事,就是通过HTTP方式发送请求到API端的Url地址,真正的Jobs的实现放到API端,这样既可以减轻任务调度服务端的压力,也可以将Jobs的实现独立出来,便于Jobs的维护或扩展。并且为了便于对整个调度过程进行监控。
[0024]进一步来看,为了实现准确的触发,任务调度服务端在发送HTTP请求之前,先创建至少一条记录保存到数据库,表示该任务已经启动触发。然后,任务调度服务端向API端发送HTTP请求,若收到API端的响应,则修改数据库记录状态为运行中,若没有收到,则不做处理。这样,数据库中的任务执行状态一直维持在“运行中”,表示该任务没有回写。
[0025]同时,为了实现监控任务的运行效率得以提升。记录在新增或是修改时,均有时间记录,根据启动时间与回写时间差计算出任务的运行耗时。具体来说,在实际实施的时候,每次更新数据库都会记录更新的时间。也就是说,任务调度服务端向API端发送HTTP请求时记录启动时间,API端响应时记录响应时间,API端异步回写时记录回写时间,这样回写时间与响应时间的差就是该任务的执行耗时,回写时间与启动时间的差就是该任务的整个调度耗时,根据执行耗时可以看出API端程序的运行效率。
[0026]再进一步来看,API端在任务运行完成后,可采用异步方式向任务调度服务端发送HTTP回写请求。在此期间,任务调度服务端接收到回写信息,修改数据库记录的状态为完成,若回写的是失败信息,则记录为失败。
[0027]通过上述的文字表述可以看出,采用本发明后,依托于任务调度算法的实现,可以减少重复的人工操作,使用程序去自动完成,并提高工作效率。同时,可以提供一套完整的任务调度算法,大大减少API端程序的开发工作量。也就是说,采用本方案后,API端程序完全不用考虑如何进行重复调度的问题,只需要关注自己的逻辑实现即可。再者,能够通过任务调度运行记录,方便对API端程序的问题或效率进行统计,便于API端程序的改进。
[0028]并且,还有如下的有点:通过封装Quartz, net框架,能够对于任务进行各种复杂的调度,并且将Quartz框架中的逻辑实现类提炼成一个只发送HTTP请求的方法,API端的逻辑实现各自独立维护,只需要提供一个HTTP的访问地址,触发器只需要定时发送HTTP请求去触发API端程序即可。同时,通过模板方法类,API端只需要继承基类即可完成任务调度算法的接入,并且自动记录执行情况,便于监控任务执行情况及性能改进。由此,减少API端开发工作量,并且通过HTTP方式访问,便于API端的移植及集群。
【主权项】
1.基于WEB服务的任务调度方法,其特征在于:采用API端异步调用自主的实现方法,将方法执行的结果,通过HTTP的方式发送回写请求到任务调度服务端,所述的API端自主完成自身任务,所述的任务调度服务集成有Quartz, net框架的WEB服务,所述的WEB服务启动时,实例化至少一个调度器,通过WEB服务器从数据库中读取任务的配置信息,将Quartz对象装载到调度器其中,启动调度器即可,所述的Quartz对象为Triggers及Jobs构成,所述的API端为具体任务的业务逻辑实现端,所述API端的程序继承自定义基类,根据自定义基类的流程,自动完成对任务调度服务端发送的HTTP请求进行分析,并响应分析结果。
2.根据权利要求1所述的基于WEB服务的任务调度方法,其特征在于:所述的自定义基类为模板方法类,定义了 API端接受任务调度服务端HTTP请求,分析请求内容,发送HTTP响应,异步调用API自主的实现方法,发送回写信息。
3.根据权利要求1所述的基于WEB服务的任务调度方法,其特征在于:所述的配置信息为任务唯一标识,包括有所属分组、Cron表达式、API端Url、生成Quartz对象。
4.根据权利要求1所述的基于WEB服务的任务调度方法,其特征在于:所述的任务调度服务端在发送HTTP请求之前,先创建至少一条记录保存到数据库,表示该任务已经启动触发,然后任务调度服务端向API端发送HTTP请求,若收到API端的响应,则修改数据库记录状态为运行中,若没有收到,则不做处理。
5.根据权利要求4所述的基于WEB服务的任务调度方法,其特征在于:所述的记录在新增或是修改时,均有时间记录,根据启动时间与回写时间差计算出任务的运行耗时。
6.根据权利要求1所述的基于WEB服务的任务调度方法,其特征在于:所述的API端在任务运行完成后,采用异步方式向任务调度服务端发送HTTP回写请求,任务调度服务端接收到回写信息,修改数据库记录的状态为完成,若回写的是失败信息,则记录为失败。
【专利摘要】本发明涉及一种基于WEB服务的任务调度方法,其特点是:采用API端异步调用自主的实现方法,将方法执行的结果,通过HTTP的方式发送回写请求到任务调度服务端,API端自主完成自身任务,任务调度服务集成有Quartz.net框架的WEB服务。且API端的程序继承自定义基类,根据自定义基类的流程,自动完成对任务调度服务端发送的HTTP请求进行分析,并响应分析结果。这样,可以减少重复的人工操作,并提高工作效率。同时,大大减少API端程序的开发工作量,方便对API端程序的问题或效率进行统计,便于API端程序的改进。
【IPC分类】H04L12-24, G06F9-48
【公开号】CN104536819
【申请号】CN201410832793
【发明人】王专, 吴志祥, 吴剑, 张海龙, 马和平, 郭凤林, 沈健, 靳彩娟, 陈正茂
【申请人】同程网络科技股份有限公司
【公开日】2015年4月22日
【申请日】2014年12月29日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1