调度任务并行执行的方法、系统、设备及存储介质与流程

文档序号:19827991发布日期:2020-02-04 12:05阅读:228来源:国知局
调度任务并行执行的方法、系统、设备及存储介质与流程

本发明涉及数据处理领域,尤其涉及一种调度任务并行执行的方法、系统、设备及存储介质。



背景技术:

在数据加工等业务场景中,通过调度系统定义调度任务以处理不同的业务逻辑,实现对数据的加工处理。每个调度任务具有固定的处理周期以处理特定周期的数据,比如天任务会每天定时处理前一天的数据,周任务会每周定时处理前一周的数据等。

大部分场景下,同一个调度任务在同一个周期仅会处理一个特定的周期段的数据,比如当天运行的调度任务处理前一天的数据。

每个调度任务执行时都有其执行状态,比如当调度任务正在处理某一天数据时,其状态为正在执行,此时无法同时调用该调度任务处理其他天的数据。

但在某些特殊场景下,业务上也会存在同一个调度任务需要同时处理多个相应周期的数据的场景。比如新创建的调度任务需要快速地处理历史数据,同时对其他时间段的周期的数据进行加工处理(历史补数);或本周期的调度任务在执行过程中,发现其他时间段周期的数据加工存在异常,需要重新执行(重跑)等。这种情景下,就需要同时处理多个对应周期的调度任务。

现有技术下,有以下几种方式解决同一调度任务并发执行处理多个对应周期的数据:

1、修改任务:上述场景的核心诉求,是同时处理多个对应周期的数据,直接修改任务的相关属性和处理逻辑,使得该调度任务执行时,能够同时将业务上所需要的多个对应周期的数据一次性处理完成,然后再修改任务属性和处理逻辑,恢复为处理某个固定周期的时间段的逻辑。

2、多机制:这一方案的核心在于,将任务正常执行和历史数据处理(历史补数)与重新执行(重跑)等场景的处理机制分开,单独设置为历史补数和重跑设计特定的运行机制,使得任务可以同时支持正常执行、历史补数和重跑,在效果上达到并行处理多个周期的目的。

上述两种解决方案的局限性在于:

1、修改任务:严格意义上说,该方案只是简化了处理多个周期的操作次数,并未实现多个对应周期的数据并行处理的效果;同时修改任务——执行——修改的操作方式不仅不便捷,更容易发生忘记修改导致处理逻辑错乱的严重后果。

2、多机制运行方案:这一设计方案的缺点在于,设计上采用多种运行机制,不能用一套机制解决所有问题和场景;随着业务的发展,可能需要再次设计新的机制满足新的业务场景;而且这一方案使得系统变得复杂,不好维护管理,增加了设计、开发和运维工作。

综上所述,在处理多个调度任务并行时,现有方案并不理想,存在操作复杂或设计复杂,运维成本较高等难以克服的缺陷。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中数据处理时,调度任务处理数据操作复杂以及设计复杂的缺陷,提供一种调度任务并行执行的方法、系统、设备及存储介质。

本发明是通过下述技术方案来解决上述技术问题:

一种调度任务并行执行的方法,所述调度任务并行执行的方法包括:

定义调度任务,所述调度任务包括任务周期和用于处理所述任务周期的数据的处理逻辑;

分别拷贝所述调度任务得到至少两个镜像任务,并为不同的所述镜像任务对应设置不同的任务周期;

调度所有所述镜像任务并行运行以处理对应任务周期的数据。

较佳地,所述镜像任务包括运行状态,所述运行状态包括睡眠、就绪、运行中、运行成功、运行失败、挂起和中断服务中的至少一种。

较佳地,所述任务周期包括分钟、小时、日、周、月和年中的一个。

较佳地,所述定义调度任务的步骤之后还包括:

判断是否需要执行所述调度任务,如果是,则执行拷贝所述调度任务的步骤。

较佳地,所述调度所有所述镜像任务并行运行以处理对应任务周期的数据的步骤之后还包括:

监视所述镜像任务的所述运行状态是否正常,若是,则确定拷贝所述调度任务成功,若否,则确定拷贝所述调度任务失败。

一种调度任务并行执行的系统,所述调度任务并行执行的系统包括定义模块、拷贝模块和调度模块;

所述定义模块用于定义调度任务,所述调度任务包括任务周期和用于处理所述任务周期的数据的处理逻辑;

所述拷贝模块用于分别拷贝所述调度任务得到至少两个镜像任务,并为不同的所述镜像任务对应设置不同的任务周期;

所述调度模块用于调度所有所述镜像任务并行运行以处理对应任务周期的数据。

较佳地,所述镜像任务包括运行状态,所述运行状态包括睡眠、就绪、运行中、运行成功、运行失败、挂起和中断服务中的至少一种。

较佳地,所述任务周期包括分钟、小时、日、周、月和年中的一个。

较佳地,所述调度任务并行执行的系统还包括判断模块,所述判断模块用于在所述定义模块执行之后判断是否需要执行所述调度任务,如果是,则执行拷贝所述调度任务的步骤。

较佳地,所述调度任务并行执行的系统还包括监视模块,所述监视模块用于在所述调度模块执行之后监视所述镜像任务的所述运行状态是否正常,若是,则确定拷贝所述调度任务成功,若否则确定拷贝所述调度任务失败。

一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的调度任务并行执行的方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的调度任务并行执行的方法的步骤。

本发明的积极进步效果在于:本发明的调度任务并行执行的方法,通过分别拷贝调度任务得到至少两个镜像任务,并为不同的镜像任务对应设置不同的任务周期;调度所有镜像任务并行运行以处理对应任务周期的数据,使得可同时并行处理多个周期的处理数据,操作简单,同时使得系统开发设计简单,易于扩展维护。

附图说明

图1为本发明的实施例1的调度任务并行执行的方法的流程图。

图2为本发明的实施例2的调度任务并行执行的系统的模块示意图。

图3为本发明的实施例3的电子设备的结构示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例提供一种调度任务并行执行的方法,如图1所示,调度任务并行执行的方法包括:

步骤101、定义调度任务,调度任务包括任务周期和用于处理任务周期的数据的处理逻辑。

任务周期可以为分钟、小时、日、周、月或年等不同的周期,在实际应用中,任务周期可以为任意设定的时间段。在本实施例中,以任务周期为天举例,则调度任务用于处理以天为单位数据,比如会每天定时处理前一天的数据。

在本实施例中,应用调度系统定义调度任务,调度系统是数据加工的核心枢纽,对数据加工的所有任务进行统一的工作分配和管理,保证业务系统有序、安全可靠运行。调度任务是调度系统分配和管理的各类业务系统的最小工作单位,定义了完成特定的数据加工的逻辑和规则,包含任务周期、运行环境、运行参数、加工逻辑等。

步骤102、判断是否需要执行调度任务,如果是,则执行步骤103。

大部分场景下,同一个调度任务在同一个时间段仅会处理一个特定的时间段的数据,比如当天运行的任务处理前一天的数据。

但在某些特殊场景下,可能同时需要执行正常执行、历史补数或冲泡等场景,任务就需要同时处理多天的数据。比如新定义创建的调度任务需要快速地处理历史数据,同时对多个以天为单位的周期数据加工处理(历史补数);或当发现其他周期的数据加工存在异常,需要重新执行(重跑)等。在这些场景下,调度系统判断是否需要执行调度任务处理数据,如果需要,则执行步骤103。

步骤103、分别拷贝调度任务得到至少两个镜像任务,并为不同的镜像任务对应设置不同的任务周期;

为每个需要的任务周期建立调度任务的镜像任务,并为不同的镜像任务对应设置不同的任务周期,将每个镜像任务与相应的任务周期绑定,每个镜像任务都有自己的状态参数,彼此之间相互独立。状态参数包括运行环境相关的hadoop(一种分布式系统基础架构)集市、账号、队列信息等,以及任务模板信息,如处理的数据库名、表名、字段内容、sql(一种结构化查询语言)语句等,还可以包括任务监控相关参数等。

步骤104、调度所有镜像任务并行运行以处理对应任务周期的数据。

镜像任务以镜像的方式运行,由于各周期的镜像任务彼此独立,从而实现了真正意义上的并行执行。

步骤105、监视镜像任务的运行状态是否正常,若是,则执行步骤106,若否,则执行步骤107。

步骤106、确定拷贝调度任务成功。

步骤107、确定拷贝调度任务失败。

镜像任务包括运行状态,运行状态包括睡眠、就绪、运行中、运行成功、运行失败、挂起和中断服务中的至少一种。

监视每个周期的镜像任务的执行状况和运行状态,执行成功后即完成该周期的数据处理。

本实施例的调度任务并行执行的方法,提供了一种新的机制,使得调度任务的定义和镜像任务的执行相分离,通过分别拷贝调度任务得到至少两个镜像任务,并为不同的镜像任务对应设置不同的任务周期;调度所有镜像任务并行运行以处理对应任务周期的数据,使得可同时并行处理多个周期的处理数据,操作简单,同时使得系统开发设计简单,易于扩展维护。

通过该方法,一方面避免了对任务的来回修改,不仅降低了用户的使用门槛,而且减少了由于频繁改动带来的安全隐患;另一方面,该方法是一种通用机制,由于每个任务周期的镜像任务的所有信息和特定的运行状态,彼此之间相互独立,能够安全可靠地运行而不会影响其他任务周期的数据处理;这一方法可同时适用于正常执行、历史补数、重跑等各种应用场景,具有广泛的适用性。

实施例2

本实施例提供一种调度任务并行执行的系统,如图2所示,调度任务并行执行的系统包括定义模块201、判断模块202、拷贝模块203、调度模块204和监视模块205。

定义模块201用于定义调度任务,调度任务包括任务周期和用于处理任务周期的数据的处理逻辑。

任务周期可以为分钟、小时、日、周、月或年等不同的周期,在实际应用中,任务周期可以为任意设定的时间段。在本实施例中,以任务周期为天举例,则调度任务用于处理以天为单位数据,比如会每天定时处理前一天的数据。

在本实施例中,应用调度系统定义调度任务,调度系统是数据加工的核心枢纽,对数据加工的所有任务进行统一的工作分配和管理,保证业务系统有序、安全可靠运行。调度任务是调度系统分配和管理的各类业务系统的最小工作单位,定义了完成特定的数据加工的逻辑和规则,包含任务周期、运行环境、运行参数、加工逻辑等。

判断模块202用于在定义模块201执行之后判断是否需要执行调度任务,如果是,则调用拷贝模块203。

大部分场景下,同一个调度任务在同一个时间段仅会处理一个特定的时间段的数据,比如当天运行的任务处理前一天的数据。

但在某些特殊场景下,可能同时需要执行正常执行、历史补数或冲泡等场景,任务就需要同时处理多天的数据。比如新定义创建的调度任务需要快速地处理历史数据,同时对多个以天为单位的周期数据加工处理(历史补数);或当发现其他周期的数据加工存在异常,需要重新执行(重跑)等。在这些场景下,调度系统判断是否需要执行调度任务处理数据,如果需要,则调用拷贝模块。

为每个需要的任务周期建立调度任务的镜像任务,并为不同的镜像任务对应设置不同的任务周期,将每个镜像任务与相应的任务周期绑定,每个镜像任务都有自己的状态参数,彼此之间相互独立。状态参数包括运行环境相关的hadoop集市、账号、队列信息等,以及任务模板信息,如处理的数据库名、表名、字段内容、sql语句等,还可以包括任务监控相关参数等。

拷贝模块203用于分别拷贝调度任务得到至少两个镜像任务,并为不同的镜像任务对应设置不同的任务周期;

调度模块204用于调度所有镜像任务并行运行以处理对应任务周期的数据。

镜像任务以镜像的方式运行,由于各周期的镜像任务彼此独立,从而实现了真正意义上的并行执行。

监视模块205用于在调度模块204执行之后监视镜像任务的运行状态是否正常,若是,则确定拷贝调度任务成功,若否,则确定拷贝调度任务失败。

运行状态包括睡眠、就绪、运行中、运行成功、运行失败、挂起和中断服务中的至少一种。

监视每个周期的镜像任务的执行状况和运行状态,执行成功后即完成该周期的数据处理。

本实施例的调度任务并行执行的系统,提供了一种新的机制,使得调度任务的定义和镜像任务的执行相分离,通过分别拷贝调度任务得到至少两个镜像任务,并为不同的镜像任务对应设置不同的任务周期;调度所有镜像任务并行运行以处理对应任务周期的数据,使得可同时并行处理多个周期的处理数据,操作简单,同时使得系统开发设计简单,易于扩展维护。

通过该系统,一方面避免了对任务的来回修改,不仅降低了用户的使用门槛,而且减少了由于频繁改动带来的安全隐患;另一方面,该系统包括一种通用机制,由于每个任务周期的镜像任务的所有信息和特定的运行状态,彼此之间相互独立,能够安全可靠地运行而不会影响其他任务周期的数据处理;这一方法可同时适用于正常执行、历史补数、重跑等各种应用场景,具有广泛的适用性。

实施例3

图3为本发明实施例3提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1的调度任务并行执行的方法。图3显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图3所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。

总线33包括数据总线、地址总线和控制总线。

存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。

存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的调度任务并行执行的方法。

电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例4

本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1所提供的调度任务并行执行的方法。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1所述的调度任务并行执行的方法中的步骤。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1