运行任务的方法和装置制造方法

文档序号:6632646阅读:129来源:国知局
运行任务的方法和装置制造方法
【专利摘要】本发明提供一种运行任务的方法和装置,能够使任务流中的子任务正确执行,并且能够使任务按任意指定历史时刻重新准确执行。本发明的运行任务的方法包括:对于任务流中的任务,保存父任务运行时的上下文信息;在启动所述父任务的子任务后,获取所述上下文信息。
【专利说明】运行任务的方法和装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,特别地涉及一种运行任务的方法和装置。

【背景技术】
[0002]计算机系统在执行大量任务时,通常采用调度系统来进行任务调度。Quarz是一种常用的任务调度系统,可以用来创建简单或运行十个,百个,甚至是好几万个任务;它目的是提供强大的定时处理功能,让我们的应用程序可以按照提供的时间表来执行不同的应用。Quartz主要由计划调度器容器、可执行任务和触发器三部分组成。当可执行任务和触发器在计划调度器容器上注册后,形成了装配好的任务,就可以伴随容器启动而执行任务调度。
[0003]各任务在执行时,根据自身程序代码的逻辑设定,动态计算出本任务所需的上下文。发明人在实现本发明的过程中发现,按照现有技术中的做法,存在如下问题:不能提供任意任务在指定历史时刻执行时的上下文,任务的上下文只能依靠程序逻辑代码动态计算,往往不是期望的上下文,造成任务执行结果不准确;任务流中的各个任务不能继承父任务已经设定好的上下文信息,只能根据自身的程序代码逻辑动态获取上下文,子任务不能得到准确的上下文,造成任务流按指定历史时刻重新执行时其中各任务的上下文不统一,同样造成任务执行结果不准确。


【发明内容】

[0004]有鉴于此,本发明提供一种运行任务的方法和装置,能够使任务流中的子任务正确执行,并且能够使任务按任意指定历史时刻重新准确执行。
[0005]为实现上述目的,根据本发明的一个方面,提供了一种运行任务的方法。
[0006]本发明的运行任务的方法包括:对于任务流中的任务,保存父任务运行时的上下文信息;在启动所述父任务的子任务后,获取所述上下文信息。
[0007]可选地,保存父任务运行时的上下文信息的步骤包括:将父任务运行时的上下文信息保存在上下文服务器中;获取所述上下文信息的步骤包括:向所述上下文服务器请求上下文服务,然后接收所述上下文服务器返回的所述上下文信息。
[0008]可选地,保存父任务运行时的上下文信息之后,还包括:获取指定任务流中的任务的指定时刻的上下文信息;根据获取的上下文信息设定该任务的运行环境。
[0009]可选地,保存父任务运行时的上下文信息的步骤包括:将父任务运行时的上下文信息保存在上下文服务器中;获取指定任务流中的任务的指定时刻的上下文信息的步骤包括:向所述上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻,然后接收所述上下文服务器返回的指定任务流中的任务的指定时刻的上下文信息。
[0010]根据本发明的另一方面,提供了一种运行任务的装置。
[0011]本发明的运行任务的装置包括操作模块、存储模块、以及获取模块,其中:所述操作模块用于对于任务流中的任务,将父任务运行时的上下文信息发送给所述存储模块;所述存储模块用于保存所述上下文信息;所述获取模块用于在所述父任务的子任务被启动后,从所述存储模块获取所述上下文信息。
[0012]可选地,所述存储模块设置在上下文服务器中;所述获取模块还用于向所述上下文服务器请求上下文服务,然后接收所述上下文服务器返回的所述上下文信息。
[0013]可选地,还包括:历史模块,用于获取指定任务流中的任务的指定时刻的上下文信息;设定模块,用于根据所述历史模块获取的上下文信息设定所述指定任务流中的任务的运行环境。
[0014]可选地,所述存储模块设置在上下文服务器中;所述获取模块还用于向所述上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻,然后接收所述上下文服务器返回的指定任务流中的任务的指定时刻的上下文信息。
[0015]根据本发明的技术方案,持久化保存任务执行时上下文信息,任务流中的各子任务获取持久化保存的父任务的运行时上下文,从而保存了任务流中的各个任务访问的是同一输入源,使任务正确执行。利用历史上执行任务时持久化保存的任务上下文信息,可以实现重新执行历史时刻的任务,并且任务流中的每个任务仍具备相同的输入源,使任务按任意指定历史时刻重新准确执行。

【专利附图】

【附图说明】
[0016]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0017]图1是根据本发明实施例的运行当前任务的方法包括的主要步骤的示意图;
[0018]图2是根据本发明实施例的运行历史任务的方法包括的主要步骤的示意图;
[0019]图3是根据本发明实施例的运行任务的装置的主要模块的示意图。

【具体实施方式】
[0020]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0021]在本发明实施例中,父任务运行时的上下文信息被持久化保存到上下文服务器中,父任务执行完毕,启动子任务后,子任务从上下文服务器中获取持久化保存的上下文信息,从而保证父任务与子任务访问同一输入源。以下结合具体实例加以说明。在该实例中,一个数据处理任务流包括数据抽取任务、数据建模任务、数据清洗任务、数据导出任务四个步骤。图1是根据本发明实施例的运行当前任务的方法包括的主要步骤的示意图。
[0022]步骤Sll:初始化和设定任务流的运行时上下文信息。一般包括初始化环境变量、清理运行时环境。在本步骤中,对数据抽取任务设定上下文信息(仅列出两项作为示例,假设当前日期为2014年9月24日):dt =’ 20140924’,locat1n=’ Beijing, ShangHai, ChengDu’,根据程序设定,获取昨天的指定地域的数据情况,即获取9月23日在北京、上海、成都三个地域的数据。其中dt根据当前日期动态获取。
[0023]步骤S12:持久化保存任务的运行时上下文信息。在本步骤中,在上下文服务器中持久化保存数据抽取任务的设定的上下文信息,即上文中的dt =’ 20140924’,locat1n=’ Beijing, ShangHaij ChengDu’。
[0024]步骤S13:执行当前任务。按上例,本步骤中执行数据抽取任务。任务执行完成后进入步骤S14。
[0025]步骤S14:启动子任务。按上例,启动的子任务是数据建模任务。
[0026]步骤S15:子任务获取上下文信息。数据建模任务在启动后,向上下文服务器请求上下文服务,然后接收上下文服务器返回的上下文信息。按上例,上下文服务器返回的上下文信息即为 dt =’ 20140924,,locat1n =’ Beijing, ShangHai, ChengDu,。本步骤之后返回步骤S11,即子任务使用父任务的上下文信息给自身设定运行环境。接下来循环执行上述步骤,每次循环执行上次循环中的任务的子任务,在dt =,20140924’被传递给数据导出任务之后,执行数据导出任务即完成整个任务流。
[0027]从以上的步骤可以看出,任务流中的各子任务获取的是持久化保存的父任务的运行时上下文,从而保存了任务流中的各个任务访问的是同一输入源,使任务正确执行。
[0028]本实施例中的父任务运行时的上下文信息被持久化保存到上下文服务器中的做法还可以使历史任务重新执行。结合前文的例子,要重新获取2014年8月17日在北京、上海、成都三个地域的数据,以下结合图2加以说明,图2是根据本发明实施例的运行历史任务的方法包括的主要步骤的示意图。
[0029]步骤S21:向上下文服务器请求上下文服务。按上例,流程开始时由数据抽取任务向上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻。
[0030]步骤S22:接收任务的上下文信息。在本步骤中,数据抽取任务接收上下文服务器返回的上下文信息,即 dt =’ 20140817’ , locat1n =,Beijing, ShangHai, ChengDu,。
[0031]步骤S23:根据获取的上下文信息执行任务。在数据抽取任务完成后,进入步骤S24。
[0032]步骤S24:启动子任务。按上例,启动的子任务是数据建模任务。本步骤之后返回步骤S21,在再次执行的步骤S21中,步骤S24启动的子任务向上下文服务器请求上下文服务。如此循环,最后dt =’ 20140817’被传递给数据导出任务,执行数据导出任务之后任务流即完成。
[0033]从以上的步骤可以看出,利用历史上执行任务时持久化保存的任务上下文信息,可以实现重新执行历史时刻的任务,并且任务流中的每个任务仍具备相同的输入源。
[0034]图3是根据本发明实施例的运行任务的装置的主要模块的示意图。如图3所示,运行任务的装置30主要包括操作模块31、存储模块32、以及获取模块33。操作模块31用于对于任务流中的任务,将父任务运行时的上下文信息发送给存储模块32,存储模块32用于保存上下文信息,获取模块33用于在父任务的子任务被启动后,从存储模块32获取上下文信息。
[0035]运行任务的装置30还可包括历史模块和设定模块,其中历史模块用于获取指定任务流中的任务的指定时刻的上下文信息;设定模块用于根据历史模块获取的上下文信息设定指定任务流中的任务的运行环境。存储模块32可设置在上下文服务器中;获取模块33还可用于向上下文服务器请求上下文服务,然后接收上下文服务器返回的上下文信息。获取模块33还可用于向上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻,然后接收上下文服务器返回的指定任务流中的任务的指定时刻的上下文信肩、O
[0036]根据本发明实施例的技术方案,持久化保存任务执行时上下文信息,任务流中的各子任务获取持久化保存的父任务的运行时上下文,从而保存了任务流中的各个任务访问的是同一输入源,使任务正确执行。利用历史上执行任务时持久化保存的任务上下文信息,可以实现重新执行历史时刻的任务,并且任务流中的每个任务仍具备相同的输入源,使任务按任意指定历史时刻重新准确执行。
[0037]以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0038]因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
[0039]还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
[0040]上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
【权利要求】
1.一种运行任务的方法,其特征在于,包括: 对于任务流中的任务,保存父任务运行时的上下文信息; 在启动所述父任务的子任务后,获取所述上下文信息。
2.根据权利要求1所述的方法,其特征在于, 保存父任务运行时的上下文信息的步骤包括:将父任务运行时的上下文信息保存在上下文服务器中; 获取所述上下文信息的步骤包括:向所述上下文服务器请求上下文服务,然后接收所述上下文服务器返回的所述上下文信息。
3.根据权利要求1所述的方法,其特征在于,保存父任务运行时的上下文信息之后,还包括: 获取指定任务流中的任务的指定时刻的上下文信息; 根据获取的上下文信息设定该任务的运行环境。
4.根据权利要求3所述的方法,其特征在于, 保存父任务运行时的上下文信息的步骤包括:将父任务运行时的上下文信息保存在上下文服务器中; 获取指定任务流中的任务的指定时刻的上下文信息的步骤包括:向所述上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻,然后接收所述上下文服务器返回的指定任务流中的任务的指定时刻的上下文信息。
5.一种运行任务的装置,其特征在于,包括操作模块、存储模块、以及获取模块,其中: 所述操作模块用于对于任务流中的任务,将父任务运行时的上下文信息发送给所述存储模块; 所述存储模块用于保存所述上下文信息; 所述获取模块用于在所述父任务的子任务被启动后,从所述存储模块获取所述上下文信息。
6.根据权利要求5所述的装置,其特征在于, 所述存储模块设置在上下文服务器中; 所述获取模块还用于向所述上下文服务器请求上下文服务,然后接收所述上下文服务器返回的所述上下文信息。
7.根据权利要求5所述的装置,其特征在于,还包括: 历史模块,用于获取指定任务流中的任务的指定时刻的上下文信息; 设定模块,用于根据所述历史模块获取的上下文信息设定所述指定任务流中的任务的运行环境。
8.根据权利要求7所述的装置,其特征在于, 所述存储模块设置在上下文服务器中; 所述获取模块还用于向所述上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻,然后接收所述上下文服务器返回的指定任务流中的任务的指定时刻的上下文信息。
【文档编号】G06F9/48GK104360898SQ201410603382
【公开日】2015年2月18日 申请日期:2014年10月30日 优先权日:2014年10月30日
【发明者】钟德艮, 马文金 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1