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

文档序号:8208976阅读:320来源:国知局
基于web服务的任务调度方法
【技术领域】
[0001]本发明涉及一种任务调度方法,尤其涉及一种基于WEB服务的任务调度方法。
【背景技术】
[0002]伴随着网页数据处理量的增大,有很多业务需要定时更新、同步的任务。尤其针对旅游业相关的网站,会涉及同步政策、定时付款、定时分单等。并且,随着业务的不断发展,会产生更多的定时任务。任务调度算法可以方便的对这些任务进行定时调度,并且不影响每个任务的独立性,提供一个统一模板方法类,使得API端可快速的接入任务调度算法,算法中使用异步回写机制记录任务执行的状况,方便对任务的执行状态、运行效率等进行监控。
[0003]关于Quartz, net,其是一个开源的任务调度框架,是Quartz API的.net移植,用C#写成。可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Quartz, net的特点是调度简单,只需要简单的创建实现类,并且绑定一个触发器即可进行调度。支持简单或较复杂的调度,可自定义调度方式或通过Cron表达式调度,Quartz, net框架内部集成了线程池管理,支持多线程的并发处理,Quartz能够运行在任何一个独立的应用程序中,Quartz应用能够被集群,可自行选择水平集群还是垂直集群。
[0004]关于HTTP通信协议,其是目前Internet上应用最广泛的通信协议之一,它允许用户提出HTTP请求(request),然后由服务器视实际处理结果传回HTTP回应(response),其基本允许方式:当用户向web服务器送出请求时,web服务器将会开启一个新连接。通过这个连接,用户可以将HTTP请求传送给web服务器。当web服务器收到HTTP请求时,将进行解析与处理,并将处理结果包装成HTTP回应。最后,web服务器会将HTTP回应传送至用户。只要用户接收到回应,web服务器将会关闭这个连接,用户的执行状态将不会被保存。
[0005]关于模板方法,其是把我们不知道具体实现的步骤封装成抽象方法,提供一个按正确顺序执行它们的具体方法(“这些具体方法”统称为模板方法),这样构成一个抽象基类。子类通过继承这个抽象基类去实现各个步骤的抽象方法,而工作流程却由父类控制。任务调度算法中提供一个模板方法类,API端继承这个模板方法类,实现自己的逻辑代码,而对于接受HTTP请求并分析,响应请求,异步调用逻辑代码等都由模板方法类控制完成。
[0006]关于负载均衡=Quartz支持技术数据库的集群搭建。任务调度服务端可以搭建多个节点,每个节点上都是一个独立的任务调度服务,通过数据库中对于触发器的状态验证,如果该触发器已经被触发,不再触发该触发器,保证同一个任务不会被重复触发;当某一个任务调度服务端停止工作后,其他节点上的任务调度服务器会检测该到该触发器的状态处于未触发状态,则会触发它。

【发明内容】

[0007]本发明的目的就是为了解决现有技术中存在的上述问题,提供一种基于WEB服务的任务调度方法。
[0008]本发明的目的通过以下技术方案来实现:
基于WEB服务的任务调度方法,其特征在于:采用API端异步调用自主的实现方法,将方法执行的结果,通过HTTP的方式发送回写请求到任务调度服务端,所述的API端自主完成自身任务,所述的任务调度服务集成有Quartz, net框架的WEB服务,所述的WEB服务启动时,实例化至少一个调度器,通过WEB服务器从数据库中读取任务的配置信息,将Quartz对象装载到调度器其中,启动调度器即可,所述的Quartz对象为Triggers及Jobs构成,所述的API端为具体任务的业务逻辑实现端,所述API端的程序继承自定义基类,根据自定义基类的流程,自动完成对任务调度服务端发送的HTTP请求进行分析,并响应分析结果。
[0009]上述的基于WEB服务的任务调度方法,其中:所述的自定义基类为模板方法类,定义了 API端接受任务调度服务端HTTP请求,分析请求内容,发送HTTP响应,异步调用API自主的实现方法,发送回写信息。
[0010]进一步地,上述的基于WEB服务的任务调度方法,其中:所述的配置信息为任务唯一标识,包括有所属分组、Cron表达式、API端Url、生成Quartz对象。
[0011]更进一步地,上述的基于WEB服务的任务调度方法,其中:所述的任务调度服务端在发送HTTP请求之前,先创建至少一条记录保存到数据库,表示该任务已经启动触发,然后任务调度服务端向API端发送HTTP请求,若收到API端的响应,则修改数据库记录状态为运行中,若没有收到,则不做处理。
[0012]更进一步地,上述的基于WEB服务的任务调度方法,其中:所述的记录在新增或是修改时,均有时间记录,根据启动时间与回写时间差计算出任务的运行耗时。
[0013]再进一步地,上述的基于WEB服务的任务调度方法,其中:所述的API端在任务运行完成后,采用异步方式向任务调度服务端发送HTTP回写请求,任务调度服务端接收到回写信息,修改数据库记录的状态为完成,若回写的是失败信息,则记录为失败。
[0014]本发明技术方案的优点主要体现在:依托于任务调度算法的实现,可以减少重复的人工操作,使用程序去自动完成,并提高工作效率。同时,可以提供一套完整的任务调度算法,大大减少API端程序的开发工作量。也就是说,采用本方案后,API端程序完全不用考虑如何进行重复调度的问题,只需要关注自己的逻辑实现即可。再者,能够通过任务调度运行记录,方便对API端程序的问题或效率进行统计,便于API端程序的改进。
[0015]并且,还有如下的有点:通过封装Quartz, net框架,能够对于任务进行各种复杂的调度,并且将Quartz框架中的逻辑实现类提炼成一个只发送HTTP请求的方法,API端的逻辑实现各自独立维护,只需要提供一个HTTP的访问地址,触发器只需要定时发送HTTP请求去触发API端程序即可。同时,通过模板方法类,API端只需要继承基类即可完成任务调度算法的接入,并且自动记录执行情况,便于监控任务执行情况及性能改进。由此,减少API端开发工作量,并且通过HTTP方式访问,便于API端的移植及集群。
【附图说明】
[0016]本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行图示和解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。
[0017]图1是基于WEB服务的任务调度时序示意图。
【具体实施方式】
[0018]如图1所示,基于WEB服务的任务调度方法,其特征在于:采用API端异步调用自主的实现方法既API端实现自主业务逻辑的程序函数,将方法执行的结果,通过HTTP的方式发送回写请求到任务调度服务端。采用API端自主完成自身任务,既任务调度服务触发API端任务,利用触发API端执行其自主的实现方法。
[0019]结合异步调用来看:当前进行中的主函数调用另一个函数时,不用等待被调用函数的返回值就继续进行主函数中的操作。任务调度算法中API端主函数操作为:接受
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1