CN104536819A - 基于web服务的任务调度方法 - Google Patents
基于web服务的任务调度方法 Download PDFInfo
- Publication number
- CN104536819A CN104536819A CN201410832793.3A CN201410832793A CN104536819A CN 104536819 A CN104536819 A CN 104536819A CN 201410832793 A CN201410832793 A CN 201410832793A CN 104536819 A CN104536819 A CN 104536819A
- Authority
- CN
- China
- Prior art keywords
- task
- api
- scheduling
- web service
- task scheduling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 239000010453 quartz Substances 0.000 claims abstract description 24
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000010354 integration Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于WEB服务的任务调度方法,其特点是:采用API端异步调用自主的实现方法,将方法执行的结果,通过HTTP的方式发送回写请求到任务调度服务端,API端自主完成自身任务,任务调度服务集成有Quartz.net框架的WEB服务。且API端的程序继承自定义基类,根据自定义基类的流程,自动完成对任务调度服务端发送的HTTP请求进行分析,并响应分析结果。这样,可以减少重复的人工操作,并提高工作效率。同时,大大减少API端程序的开发工作量,方便对API端程序的问题或效率进行统计,便于API端程序的改进。
Description
技术领域
本发明涉及一种任务调度方法,尤其涉及一种基于WEB服务的任务调度方法。
背景技术
伴随着网页数据处理量的增大,有很多业务需要定时更新、同步的任务。尤其针对旅游业相关的网站,会涉及同步政策、定时付款、定时分单等。并且,随着业务的不断发展,会产生更多的定时任务。任务调度算法可以方便的对这些任务进行定时调度,并且不影响每个任务的独立性,提供一个统一模板方法类,使得API端可快速的接入任务调度算法,算法中使用异步回写机制记录任务执行的状况,方便对任务的执行状态、运行效率等进行监控。
关于Quartz.net,其是一个开源的任务调度框架,是Quartz API的.net移植,用c#写成。可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Quartz.net的特点是调度简单,只需要简单的创建实现类,并且绑定一个触发器即可进行调度。支持简单或较复杂的调度,可自定义调度方式或通过Cron表达式调度,Quartz.net框架内部集成了线程池管理,支持多线程的并发处理,Quartz能够运行在任何一个独立的应用程序中,Quartz应用能够被集群,可自行选择水平集群还是垂直集群。
关于HTTP通信协议,其是目前Internet上应用最广泛的通信协议之一,它允许用户提出HTTP请求(request),然后由服务器视实际处理结果传回HTTP回应(response),其基本允许方式:当用户向web服务器送出请求时,web服务器将会开启一个新连接。通过这个连接,用户可以将HTTP请求传送给web服务器。当web服务器收到HTTP请求时,将进行解析与处理,并将处理结果包装成HTTP回应。最后,web服务器会将HTTP回应传送至用户。只要用户接收到回应,web服务器将会关闭这个连接,用户的执行状态将不会被保存。
关于模板方法,其是把我们不知道具体实现的步骤封装成抽象方法,提供一个按正确顺序执行它们的具体方法(“这些具体方法”统称为模板方法),这样构成一个抽象基类。子类通过继承这个抽象基类去实现各个步骤的抽象方法,而工作流程却由父类控制。任务调度算法中提供一个模板方法类,API端继承这个模板方法类,实现自己的逻辑代码,而对于接受HTTP请求并分析,响应请求,异步调用逻辑代码等都由模板方法类控制完成。
关于负载均衡:Quartz支持技术数据库的集群搭建。任务调度服务端可以搭建多个节点,每个节点上都是一个独立的任务调度服务,通过数据库中对于触发器的状态验证,如果该触发器已经被触发,不再触发该触发器,保证同一个任务不会被重复触发;当某一个任务调度服务端停止工作后,其他节点上的任务调度服务器会检测该到该触发器的状态处于未触发状态,则会触发它。
发明内容
本发明的目的就是为了解决现有技术中存在的上述问题,提供一种基于WEB服务的任务调度方法。
本发明的目的通过以下技术方案来实现:
基于WEB服务的任务调度方法,其特征在于:采用API端异步调用自主的实现方法,将方法执行的结果,通过HTTP的方式发送回写请求到任务调度服务端,所述的API端自主完成自身任务,所述的任务调度服务集成有Quartz.net框架的WEB服务,所述的WEB服务启动时,实例化至少一个调度器,通过WEB服务器从数据库中读取任务的配置信息,将Quartz对象装载到调度器其中,启动调度器即可,所述的Quartz对象为Triggers及Jobs构成,所述的API端为具体任务的业务逻辑实现端,所述API端的程序继承自定义基类,根据自定义基类的流程,自动完成对任务调度服务端发送的HTTP请求进行分析,并响应分析结果。
上述的基于WEB服务的任务调度方法,其中:所述的自定义基类为模板方法类,定义了API端接受任务调度服务端HTTP请求,分析请求内容,发送HTTP响应,异步调用API自主的实现方法,发送回写信息。
进一步地,上述的基于WEB服务的任务调度方法,其中:所述的配置信息为任务唯一标识,包括有所属分组、Cron表达式、API端Url、生成Quartz对象。
更进一步地,上述的基于WEB服务的任务调度方法,其中:所述的任务调度服务端在发送HTTP请求之前,先创建至少一条记录保存到数据库,表示该任务已经启动触发,然后任务调度服务端向API端发送HTTP请求,若收到API端的响应,则修改数据库记录状态为运行中,若没有收到,则不做处理。
更进一步地,上述的基于WEB服务的任务调度方法,其中:所述的记录在新增或是修改时,均有时间记录,根据启动时间与回写时间差计算出任务的运行耗时。
再进一步地,上述的基于WEB服务的任务调度方法,其中:所述的API端在任务运行完成后,采用异步方式向任务调度服务端发送HTTP回写请求,任务调度服务端接收到回写信息,修改数据库记录的状态为完成,若回写的是失败信息,则记录为失败。
本发明技术方案的优点主要体现在:依托于任务调度算法的实现,可以减少重复的人工操作,使用程序去自动完成,并提高工作效率。同时,可以提供一套完整的任务调度算法,大大减少API端程序的开发工作量。也就是说,采用本方案后,API端程序完全不用考虑如何进行重复调度的问题,只需要关注自己的逻辑实现即可。再者,能够通过任务调度运行记录,方便对API端程序的问题或效率进行统计,便于API端程序的改进。
并且,还有如下的有点:通过封装Quartz.net框架,能够对于任务进行各种复杂的调度,并且将Quartz框架中的逻辑实现类提炼成一个只发送HTTP请求的方法,API端的逻辑实现各自独立维护,只需要提供一个HTTP的访问地址,触发器只需要定时发送HTTP请求去触发API端程序即可。同时,通过模板方法类,API端只需要继承基类即可完成任务调度算法的接入,并且自动记录执行情况,便于监控任务执行情况及性能改进。由此,减少API端开发工作量,并且通过HTTP方式访问,便于API端的移植及集群。
附图说明
本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行图示和解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。
图1是基于WEB服务的任务调度时序示意图。
具体实施方式
如图1所示,基于WEB服务的任务调度方法,其特征在于:采用API端异步调用自主的实现方法既API端实现自主业务逻辑的程序函数,将方法执行的结果,通过HTTP的方式发送回写请求到任务调度服务端。采用API端自主完成自身任务,既任务调度服务触发API端任务,利用触发API端执行其自主的实现方法。
结合异步调用来看:当前进行中的主函数调用另一个函数时,不用等待被调用函数的返回值就继续进行主函数中的操作。任务调度算法中API端主函数操作为:接受任务调度服务端请求→分析请求内容→异步调用API端的具体实现函数→发送响应信息。
具体来说,为了实现任务的准确有效调度,任务调度服务集成有Quartz.net框架的WEB服务。这样,在WEB服务启动时,实例化至少一个调度器,通过WEB服务器从数据库(SQL Server 2008数据库)中读取任务的配置信息,将Quartz对象装载到调度器其中,启动调度器即可。并且,所涉及的Quartz对象为Triggers及Jobs构成,可完成对任务的定时调度。
与之对应的是,采用的API端为具体任务的业务逻辑实现端。并且,API端的程序继承自定义基类,能根据自定义基类的流程,自动完成对任务调度服务端发送的HTTP请求进行分析,并响应分析结果。
就本发明一较佳的实施方式来看,本发明采用的自定义基类为模板方法类,其定义了API端接受任务调度服务端HTTP请求,可分析请求内容,并发送HTTP响应,异步调用API自主的实现方法,最终发送回写信息。并且,为了避免数据出错,配置信息为任务唯一标识,其包括有所属分组、Cron表达式、API端Url、生成Quartz对象。具体来说,Trggers(是Quartz对象,是一个定时触发器)是定时触发器,根据Cron表达式定时触发Jobs的运行。而Jobs是自定义的程序。
在实施本发明的时候,所有的Jobs做同一件事,就是通过HTTP方式发送请求到API端的Url地址,真正的Jobs的实现放到API端,这样既可以减轻任务调度服务端的压力,也可以将Jobs的实现独立出来,便于Jobs的维护或扩展。并且为了便于对整个调度过程进行监控。
进一步来看,为了实现准确的触发,任务调度服务端在发送HTTP请求之前,先创建至少一条记录保存到数据库,表示该任务已经启动触发。然后,任务调度服务端向API端发送HTTP请求,若收到API端的响应,则修改数据库记录状态为运行中,若没有收到,则不做处理。这样,数据库中的任务执行状态一直维持在“运行中”,表示该任务没有回写。
同时,为了实现监控任务的运行效率得以提升。记录在新增或是修改时,均有时间记录,根据启动时间与回写时间差计算出任务的运行耗时。具体来说,在实际实施的时候,每次更新数据库都会记录更新的时间。也就是说,任务调度服务端向API端发送HTTP请求时记录启动时间,API端响应时记录响应时间,API端异步回写时记录回写时间,这样回写时间与响应时间的差就是该任务的执行耗时,回写时间与启动时间的差就是该任务的整个调度耗时,根据执行耗时可以看出API端程序的运行效率。
再进一步来看,API端在任务运行完成后,可采用异步方式向任务调度服务端发送HTTP回写请求。在此期间,任务调度服务端接收到回写信息,修改数据库记录的状态为完成,若回写的是失败信息,则记录为失败。
通过上述的文字表述可以看出,采用本发明后,依托于任务调度算法的实现,可以减少重复的人工操作,使用程序去自动完成,并提高工作效率。同时,可以提供一套完整的任务调度算法,大大减少API端程序的开发工作量。也就是说,采用本方案后,API端程序完全不用考虑如何进行重复调度的问题,只需要关注自己的逻辑实现即可。再者,能够通过任务调度运行记录,方便对API端程序的问题或效率进行统计,便于API端程序的改进。
并且,还有如下的有点:通过封装Quartz.net框架,能够对于任务进行各种复杂的调度,并且将Quartz框架中的逻辑实现类提炼成一个只发送HTTP请求的方法,API端的逻辑实现各自独立维护,只需要提供一个HTTP的访问地址,触发器只需要定时发送HTTP请求去触发API端程序即可。同时,通过模板方法类,API端只需要继承基类即可完成任务调度算法的接入,并且自动记录执行情况,便于监控任务执行情况及性能改进。由此,减少API端开发工作量,并且通过HTTP方式访问,便于API端的移植及集群。
Claims (6)
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回写请求,任务调度服务端接收到回写信息,修改数据库记录的状态为完成,若回写的是失败信息,则记录为失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410832793.3A CN104536819A (zh) | 2014-12-29 | 2014-12-29 | 基于web服务的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410832793.3A CN104536819A (zh) | 2014-12-29 | 2014-12-29 | 基于web服务的任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104536819A true CN104536819A (zh) | 2015-04-22 |
Family
ID=52852351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410832793.3A Pending CN104536819A (zh) | 2014-12-29 | 2014-12-29 | 基于web服务的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536819A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834599A (zh) * | 2015-04-24 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | Web安全检测方法和装置 |
CN106126309A (zh) * | 2016-07-15 | 2016-11-16 | 浪潮软件集团有限公司 | 一种基于ons的定时任务调度方法 |
CN107957903A (zh) * | 2017-11-13 | 2018-04-24 | 中国平安财产保险股份有限公司 | 异步任务调度方法、服务器及存储介质 |
CN108279973A (zh) * | 2017-01-05 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种信息统计方法、装置及电子设备 |
CN108958904A (zh) * | 2017-05-25 | 2018-12-07 | 北京忆恒创源科技有限公司 | 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架 |
CN109597681A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 云端控制方法、装置、计算机设备及存储介质 |
CN110019059A (zh) * | 2017-12-04 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种定时同步的方法和装置 |
CN110688212A (zh) * | 2019-09-26 | 2020-01-14 | 山东浪潮通软信息科技有限公司 | 基于quartz的定时管理方法及系统 |
CN113495720A (zh) * | 2020-04-07 | 2021-10-12 | 中国移动通信集团重庆有限公司 | 网站开发系统及方法 |
CN114528027A (zh) * | 2022-01-25 | 2022-05-24 | 深圳市优易控软件有限公司 | 一种基于pc平台的智能装备响应时间提升方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001057663A3 (en) * | 2000-02-04 | 2002-04-04 | America Online Inc | Optimized delivery of web application code |
EP1677488A1 (en) * | 2005-01-04 | 2006-07-05 | Microsoft Corporation | Web application architecture |
CN101887381A (zh) * | 2010-06-22 | 2010-11-17 | 北京伟库电子商务科技有限公司 | 基于Quartz框架的配置定时任务的方法和装置 |
CN102420709A (zh) * | 2011-12-23 | 2012-04-18 | 大唐移动通信设备有限公司 | 一种基于任务框架的调度任务管理方法和设备 |
CN103685387A (zh) * | 2012-09-12 | 2014-03-26 | 中国移动通信集团公司 | 一种调度http请求的方法和浏览器装置 |
-
2014
- 2014-12-29 CN CN201410832793.3A patent/CN104536819A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001057663A3 (en) * | 2000-02-04 | 2002-04-04 | America Online Inc | Optimized delivery of web application code |
EP1677488A1 (en) * | 2005-01-04 | 2006-07-05 | Microsoft Corporation | Web application architecture |
CN101887381A (zh) * | 2010-06-22 | 2010-11-17 | 北京伟库电子商务科技有限公司 | 基于Quartz框架的配置定时任务的方法和装置 |
CN102420709A (zh) * | 2011-12-23 | 2012-04-18 | 大唐移动通信设备有限公司 | 一种基于任务框架的调度任务管理方法和设备 |
CN103685387A (zh) * | 2012-09-12 | 2014-03-26 | 中国移动通信集团公司 | 一种调度http请求的方法和浏览器装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834599B (zh) * | 2015-04-24 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | Web安全检测方法和装置 |
CN104834599A (zh) * | 2015-04-24 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | Web安全检测方法和装置 |
CN106126309A (zh) * | 2016-07-15 | 2016-11-16 | 浪潮软件集团有限公司 | 一种基于ons的定时任务调度方法 |
CN108279973A (zh) * | 2017-01-05 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种信息统计方法、装置及电子设备 |
CN108958904A (zh) * | 2017-05-25 | 2018-12-07 | 北京忆恒创源科技有限公司 | 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架 |
CN108958904B (zh) * | 2017-05-25 | 2024-04-05 | 北京忆恒创源科技股份有限公司 | 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架 |
CN107957903A (zh) * | 2017-11-13 | 2018-04-24 | 中国平安财产保险股份有限公司 | 异步任务调度方法、服务器及存储介质 |
CN110019059B (zh) * | 2017-12-04 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 一种定时同步的方法和装置 |
CN110019059A (zh) * | 2017-12-04 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种定时同步的方法和装置 |
CN109597681A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 云端控制方法、装置、计算机设备及存储介质 |
CN109597681B (zh) * | 2018-10-22 | 2024-05-07 | 平安科技(深圳)有限公司 | 云端控制方法、装置、计算机设备及存储介质 |
CN110688212A (zh) * | 2019-09-26 | 2020-01-14 | 山东浪潮通软信息科技有限公司 | 基于quartz的定时管理方法及系统 |
CN113495720A (zh) * | 2020-04-07 | 2021-10-12 | 中国移动通信集团重庆有限公司 | 网站开发系统及方法 |
CN114528027A (zh) * | 2022-01-25 | 2022-05-24 | 深圳市优易控软件有限公司 | 一种基于pc平台的智能装备响应时间提升方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536819A (zh) | 基于web服务的任务调度方法 | |
US20180324051A1 (en) | User interface for automated flows within a cloud based developmental platform | |
US9588822B1 (en) | Scheduler for data pipeline | |
US20180321833A1 (en) | User interface for automated flows within a cloud based developmental platform | |
US9904585B1 (en) | Error handling in executing workflow state machines | |
US10101972B1 (en) | Data modelling and flow engine for building automated flows within a cloud based developmental platform | |
CN107479990A (zh) | 一种分布式软件服务系统 | |
CN107463434B (zh) | 一种分布式任务处理方法与设备 | |
US11150896B2 (en) | Automated generation of service definitions for message queue application clients | |
CN104572290A (zh) | 消息处理线程的控制方法及装置 | |
JP2008135035A5 (zh) | ||
US8538793B2 (en) | System and method for managing real-time batch workflows | |
CN102782652A (zh) | 使用历史度量程序性地确定请求分派的执行模式 | |
US11704616B2 (en) | Systems and methods for distributed business processmanagement | |
US20140123114A1 (en) | Framework for integration and execution standardization (fiesta) | |
JP2009522647A (ja) | ワークフローのオブジェクトモデル | |
CN108255585B (zh) | Sdk异常控制及应用程序运行方法、装置及其设备 | |
Bocciarelli et al. | A language for enabling model-driven analysis of business processes | |
CN102810184A (zh) | 一种动态执行工作流的方法、装置及企业系统 | |
CN110532044A (zh) | 一种大数据批处理方法、装置、电子设备及存储介质 | |
Johnsen et al. | Dynamic resource reallocation between deployment components | |
CN108399095B (zh) | 支持动态管理定时任务的方法、系统、设备和存储介质 | |
Lv et al. | An attribute-based availability model for large scale IaaS clouds with CARMA | |
CN104298671B (zh) | 数据统计分析方法及装置 | |
US10803413B1 (en) | Workflow service with translator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150422 |