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

技术编号:11044592 阅读:83 留言:0更新日期:2015-02-18 11:01
本发明专利技术提供一种运行任务的方法和装置,能够使任务流中的子任务正确执行,并且能够使任务按任意指定历史时刻重新准确执行。本发明专利技术的运行任务的方法包括:对于任务流中的任务,保存父任务运行时的上下文信息;在启动所述父任务的子任务后,获取所述上下文信息。

【技术实现步骤摘要】
运行任务的方法和装置
本专利技术涉及计算机
,特别地涉及一种运行任务的方法和装置。
技术介绍
计算机系统在执行大量任务时,通常采用调度系统来进行任务调度。Quarz是一种常用的任务调度系统,可以用来创建简单或运行十个,百个,甚至是好几万个任务;它目的是提供强大的定时处理功能,让我们的应用程序可以按照提供的时间表来执行不同的应用。Quartz主要由计划调度器容器、可执行任务和触发器三部分组成。当可执行任务和触发器在计划调度器容器上注册后,形成了装配好的任务,就可以伴随容器启动而执行任务调度。 各任务在执行时,根据自身程序代码的逻辑设定,动态计算出本任务所需的上下文。专利技术人在实现本专利技术的过程中发现,按照现有技术中的做法,存在如下问题:不能提供任意任务在指定历史时刻执行时的上下文,任务的上下文只能依靠程序逻辑代码动态计算,往往不是期望的上下文,造成任务执行结果不准确;任务流中的各个任务不能继承父任务已经设定好的上下文信息,只能根据自身的程序代码逻辑动态获取上下文,子任务不能得到准确的上下文,造成任务流按指定历史时刻重新执行时其中各任务的上下文不统一,同样造成任务执行结果不准确。
技术实现思路
有鉴于此,本专利技术提供一种运行任务的方法和装置,能够使任务流中的子任务正确执行,并且能够使任务按任意指定历史时刻重新准确执行。 为实现上述目的,根据本专利技术的一个方面,提供了一种运行任务的方法。 本专利技术的运行任务的方法包括:对于任务流中的任务,保存父任务运行时的上下文信息;在启动所述父任务的子任务后,获取所述上下文信息。 可选地,保存父任务运行时的上下文信息的步骤包括:将父任务运行时的上下文信息保存在上下文服务器中;获取所述上下文信息的步骤包括:向所述上下文服务器请求上下文服务,然后接收所述上下文服务器返回的所述上下文信息。 可选地,保存父任务运行时的上下文信息之后,还包括:获取指定任务流中的任务的指定时刻的上下文信息;根据获取的上下文信息设定该任务的运行环境。 可选地,保存父任务运行时的上下文信息的步骤包括:将父任务运行时的上下文信息保存在上下文服务器中;获取指定任务流中的任务的指定时刻的上下文信息的步骤包括:向所述上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻,然后接收所述上下文服务器返回的指定任务流中的任务的指定时刻的上下文信息。 根据本专利技术的另一方面,提供了一种运行任务的装置。 本专利技术的运行任务的装置包括操作模块、存储模块、以及获取模块,其中:所述操作模块用于对于任务流中的任务,将父任务运行时的上下文信息发送给所述存储模块;所述存储模块用于保存所述上下文信息;所述获取模块用于在所述父任务的子任务被启动后,从所述存储模块获取所述上下文信息。 可选地,所述存储模块设置在上下文服务器中;所述获取模块还用于向所述上下文服务器请求上下文服务,然后接收所述上下文服务器返回的所述上下文信息。 可选地,还包括:历史模块,用于获取指定任务流中的任务的指定时刻的上下文信息;设定模块,用于根据所述历史模块获取的上下文信息设定所述指定任务流中的任务的运行环境。 可选地,所述存储模块设置在上下文服务器中;所述获取模块还用于向所述上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻,然后接收所述上下文服务器返回的指定任务流中的任务的指定时刻的上下文信息。 根据本专利技术的技术方案,持久化保存任务执行时上下文信息,任务流中的各子任务获取持久化保存的父任务的运行时上下文,从而保存了任务流中的各个任务访问的是同一输入源,使任务正确执行。利用历史上执行任务时持久化保存的任务上下文信息,可以实现重新执行历史时刻的任务,并且任务流中的每个任务仍具备相同的输入源,使任务按任意指定历史时刻重新准确执行。 【附图说明】 附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中: 图1是根据本专利技术实施例的运行当前任务的方法包括的主要步骤的示意图; 图2是根据本专利技术实施例的运行历史任务的方法包括的主要步骤的示意图; 图3是根据本专利技术实施例的运行任务的装置的主要模块的示意图。 【具体实施方式】 以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。 在本专利技术实施例中,父任务运行时的上下文信息被持久化保存到上下文服务器中,父任务执行完毕,启动子任务后,子任务从上下文服务器中获取持久化保存的上下文信息,从而保证父任务与子任务访问同一输入源。以下结合具体实例加以说明。在该实例中,一个数据处理任务流包括数据抽取任务、数据建模任务、数据清洗任务、数据导出任务四个步骤。图1是根据本专利技术实施例的运行当前任务的方法包括的主要步骤的示意图。 步骤Sll:初始化和设定任务流的运行时上下文信息。一般包括初始化环境变量、清理运行时环境。在本步骤中,对数据抽取任务设定上下文信息(仅列出两项作为示例,假设当前日期为2014年9月24日):dt =’ 20140924’,locat1n=’ Beijing, ShangHai, ChengDu’,根据程序设定,获取昨天的指定地域的数据情况,即获取9月23日在北京、上海、成都三个地域的数据。其中dt根据当前日期动态获取。 步骤S12:持久化保存任务的运行时上下文信息。在本步骤中,在上下文服务器中持久化保存数据抽取任务的设定的上下文信息,即上文中的dt =’ 20140924’,locat1n=’ Beijing, ShangHaij ChengDu’。 步骤S13:执行当前任务。按上例,本步骤中执行数据抽取任务。任务执行完成后进入步骤S14。 步骤S14:启动子任务。按上例,启动的子任务是数据建模任务。 步骤S15:子任务获取上下文信息。数据建模任务在启动后,向上下文服务器请求上下文服务,然后接收上下文服务器返回的上下文信息。按上例,上下文服务器返回的上下文信息即为 dt =’ 20140924,,locat1n =’ Beijing, ShangHai, ChengDu,。本步骤之后返回步骤S11,即子任务使用父任务的上下文信息给自身设定运行环境。接下来循环执行上述步骤,每次循环执行上次循环中的任务的子任务,在dt =,20140924’被传递给数据导出任务之后,执行数据导出任务即完成整个任务流。 从以上的步骤可以看出,任务流中的各子任务获取的是持久化保存的父任务的运行时上下文,从而保存了任务流中的各个任务访问的是同一输入源,使任务正确执行。 本实施例中的父任务运行时的上下文信息被持久化保存到上下文服务器中的做法还可以使历史任务重新执行。结合前文的例子,要重新获取2014年8月17日在北京、上海、成都三个地域的数据,以下结合图2加以说明,图2是根据本专利技术实施例的运行历史任务的方法包括的主要步骤的示意图。 步骤S21:向上下文服务器请求上下文服务。按上例,流程开始时由数据抽取本文档来自技高网...
运行任务的方法和装置

【技术保护点】
一种运行任务的方法,其特征在于,包括:对于任务流中的任务,保存父任务运行时的上下文信息;在启动所述父任务的子任务后,获取所述上下文信息。

【技术特征摘要】
1.一种运行任务的方法,其特征在于,包括: 对于任务流中的任务,保存父任务运行时的上下文信息; 在启动所述父任务的子任务后,获取所述上下文信息。2.根据权利要求1所述的方法,其特征在于, 保存父任务运行时的上下文信息的步骤包括:将父任务运行时的上下文信息保存在上下文服务器中; 获取所述上下文信息的步骤包括:向所述上下文服务器请求上下文服务,然后接收所述上下文服务器返回的所述上下文信息。3.根据权利要求1所述的方法,其特征在于,保存父任务运行时的上下文信息之后,还包括: 获取指定任务流中的任务的指定时刻的上下文信息; 根据获取的上下文信息设定该任务的运行环境。4.根据权利要求3所述的方法,其特征在于, 保存父任务运行时的上下文信息的步骤包括:将父任务运行时的上下文信息保存在上下文服务器中; 获取指定任务流中的任务的指定时刻的上下文信息的步骤包括:向所述上下文服务器请求上下文服务,请求信息中包含指定任务流的标识和指定时刻,然后接收所述上下文服务器返回的指定任务流中的任务的指定时刻的上下文信息。5...

【专利技术属性】
技术研发人员:钟德艮马文金
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1