掌桥专利:专业的专利平台
掌桥专利
首页

一种任务调度方法及装置、存储介质、计算机设备

文献发布时间:2023-06-19 12:14:58


一种任务调度方法及装置、存储介质、计算机设备

技术领域

本申请涉及数据处理技术领域,尤其是涉及到一种任务调度方法及装置、存储介质、计算机设备。

背景技术

在数据开发过程中需要调用一系列数据开发任务对大量的数据进行处理。数据开发任务调用的及时性和合理性对于数据开发任务的执行效果具有直接影响。

在现有的数据开发任务调度方法和系统中,均设置为按照时间周期调度数据开发任务,每当度过一个时间周期后,便会执行这些数据开发任务。当时间周期设置较长时,会导致数据处理存在较大的时间延迟;当时间周期设置较短时,又会导致数据处理过于频繁,浪费大量的系统资源。

因此,在数据开发过程中,如何避免时间周期调度方式带来的问题,提升数据处理的时效性以及数据开发任务的管理效率,避免造成系统资源的浪费,成为了本领域亟待解决的问题。

发明内容

有鉴于此,本申请提供了一种任务调度方法及装置、存储介质、计算机设备,有利于提升数据处理的时效性以及数据开发任务的管理效率,避免造成系统资源的浪费。

根据本申请的一个方面,提供了一种任务调度方法,包括:

接收第一任务触发信号;

在多个数据处理任务中获取所述第一任务触发信号对应的第一任务,并获取第一待处理数据;

执行所述第一任务对所述第一待处理数据进行处理产生第二待处理数据,并广播第二任务触发信号,其中,所述第二任务触发信号用于触发第二任务执行,所述第二任务的执行依赖于所述第一任务的执行结果。

可选地,所述获取第一待处理数据之后,所述方法还包括:

统计当前运行任务的数量;

当所述当前运行任务的数量大于或等于预设数量时,将所述第一任务加入待执行任务队列中,并在监控到所述当前运行任务的数量小于所述预设数量时执行所述待执行任务队列中的任务;

当所述当前运行任务的数量小于所述预设数量时,执行所述第一任务。

可选地,所述在监控到所述当前运行任务的数量小于所述预设数量时执行所述待执行任务队列中的任务,具体包括:

在监控到所述当前运行任务的数量小于所述预设数量时,获取所述待执行任务队列中的末端任务,并执行所述末端任务,其中,所述待执行任务队列中第一其他任务的执行不依赖所述末端任务的执行结果,所述第一其他任务为所述待执行任务队列中除所述末端任务外的任务。

可选地,所述在监控到所述当前运行任务的数量小于所述预设数量时执行所述待执行任务队列中的任务,具体包括:

在监控到所述当前运行任务的数量小于所述预设数量时,获取所述待执行任务队列中的前端任务,并执行所述前端任务,其中,所述前端任务的执行不依赖所述待执行任务队列中第二其他任务的执行结果,所述第二其他任务为所述待执行任务队列中除所述前端任务外的任务。

可选地,所述方法还包括:

创建数据处理任务,其中,所述数据处理任务包括数据处理规则、触发信号以及执行结束信号。

可选地,所述第一任务触发信号包括初始数据对应的数据标识,所述接收第一任务触发信号之后,所述方法还包括:

依据所述第一任务触发信号,更新所述初始数据的处理进度,其中,所述初始数据的处理进度包括所述初始数据对应的数据标识、已执行任务以及所述已执行任务对应的执行结果。

根据本申请的另一方面,提供了一种任务调度装置,包括:

信号接收模块,用于接收第一任务触发信号;

任务获取模块,用于在多个数据处理任务中获取所述第一任务触发信号对应的第一任务,并获取第一待处理数据;

任务执行模块,用于执行所述第一任务对所述第一待处理数据进行处理产生第二待处理数据,并广播第二任务触发信号,其中,所述第二任务触发信号用于触发第二任务执行,所述第二任务的执行依赖于所述第一任务的执行结果。

可选地,所述任务调度装置,还包括:

运行任务统计模块,用于所述获取第一待处理数据之后,统计当前运行任务的数量;

待执行任务处理模块,用于当所述当前运行任务的数量大于或等于预设数量时,将所述第一任务加入待执行任务队列中,并在监控到所述当前运行任务的数量小于所述预设数量时执行所述待执行任务队列中的任务;

所述任务执行模块,还用于当所述当前运行任务的数量小于所述预设数量时,执行所述第一任务。

可选地,所述待执行任务处理模块包括末端任务执行单元,

所述末端任务执行单元,用于在监控到所述当前运行任务的数量小于所述预设数量时,获取所述待执行任务队列中的末端任务,并执行所述末端任务,其中,所述待执行任务队列中第一其他任务的执行不依赖所述末端任务的执行结果,所述第一其他任务为所述待执行任务队列中除所述末端任务外的任务。

可选地,所述待执行任务处理模块包括前端任务执行单元,

所述前端任务执行单元,用于在监控到所述当前运行任务的数量小于所述预设数量时,获取所述待执行任务队列中的前端任务,并执行所述前端任务,其中,所述前端任务的执行不依赖所述待执行任务队列中第二其他任务的执行结果,所述第二其他任务为所述待执行任务队列中除所述前端任务外的任务。

可选地,所述任务调度装置,还包括:

任务创建模块,用于创建数据处理任务,其中,所述数据处理任务包括数据处理规则、触发信号以及执行结束信号。

可选地,所述第一任务触发信号包括初始数据对应的数据标识,所述任务调度装置,还包括:

任务执行结果处理模块,用于所述接收第一任务触发信号之后,依据所述第一任务触发信号,更新所述初始数据的处理进度,其中,所述初始数据的处理进度包括所述初始数据对应的数据标识、已执行任务以及所述已执行任务对应的执行结果。

依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任务调度方法。

依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务调度方法。

借由上述技术方案,本申请提供的一种任务调度方法及装置、存储介质、计算机设备,在接收到第一任务触发信号后,从多个数据处理任务中获取与该信号对应的第一任务,并获取第一待处理数据,第一任务对第一待处理数据进行处理后,产生第二待处理数据,并生成第二任务触发信号进行广播。本申请实施例中的数据处理任务在特定的任务触发信号的触发下被调度、执行,并在每一任务结束后生成下级任务触发信号,通过信号流的方式实时调度系统中的各数据处理任务,解决了现有技术中利用时间周期对数据处理任务进行调度时产生的数据处理不及时问题,或数据处理频繁导致占用过多系统资源的问题,有利于提升数据处理的时效性以及数据开发任务的管理效率,避免造成系统资源的浪费。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了本申请实施例提供的一种任务调度方法的流程示意图;

图2示出了本申请实施例提供的另一种任务调度方法的流程示意图;

图3示出了本申请实施例提供的一种任务调度装置的流程示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

在本实施例中提供了一种任务调度方法,如图1所示,该方法包括:

步骤101,接收第一任务触发信号;

步骤102,在多个数据处理任务中获取所述第一任务触发信号对应的第一任务,并获取第一待处理数据;

步骤103,执行所述第一任务对所述第一待处理数据进行处理产生第二待处理数据,并广播第二任务触发信号,其中,所述第二任务触发信号用于触发第二任务执行,所述第二任务的执行依赖于所述第一任务的执行结果。

本申请实施例提供的任务调度方法可以应用于任务调度系统中,第一任务触发信号可以是外部环境产生的,也可以是人为主动输入产生的。任务调度系统中预先存储有多个数据处理任务,接收到第一任务触发信号后,从这些数据处理任务中找出与此信号相对应的第一任务,并获取该第一任务需要处理的第一待处理数据。在这里,第一任务触发信号中可以携带该第一待处理数据。之后,执行第一任务,对第一待处理数据进行处理产生第二待处理数据,另外,在第一任务执行结束后,生成第二任务触发信号,并广播第二任务触发信号,以使得第二任务在该第二任务触发信号的触发下被调用、执行,对第二待处理数据进行处理。其中,第二任务的执行依赖于第一任务的执行结果,即依赖于第一任务执行后产生的第二待处理数据。

通过应用本实施例的技术方案,在接收到第一任务触发信号后,从多个数据处理任务中获取与该信号对应的第一任务,并获取第一待处理数据,第一任务对第一待处理数据进行处理后,产生第二待处理数据,并生成第二任务触发信号进行广播。本申请实施例中的数据处理任务在特定的任务触发信号的触发下被调度、执行,并在每一任务结束后生成下级任务触发信号,通过信号流的方式实时调度系统中的各数据处理任务,解决了现有技术中利用时间周期对数据处理任务进行调度时产生的数据处理不及时问题,或数据处理频繁导致占用过多系统资源的问题,有利于提升数据处理的时效性以及数据开发任务的管理效率,避免造成系统资源的浪费。

进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种任务调度方法,如图2所示,该方法包括:

步骤201,接收第一任务触发信号;

步骤202,依据所述第一任务触发信号,更新所述初始数据的处理进度,其中,所述初始数据的处理进度包括所述初始数据对应的数据标识、已执行任务以及所述已执行任务对应的执行结果;

在该实施例中,第一任务触发信号中包括初始数据对应的数据标识。在这里,初始数据可以从第一任务触发信号中获取,每一个初始数据中带有区别于其他数据的数据标识,数据标识可以是数据的顺序编号等,在此不做要求。当任务调度系统接收到第一任务触发信号后,以第一任务触发信号为基础,对初始数据的处理进度进行更新。任务调度系统更新数据处理进度的过程伴随着数据处理的全过程。在这里,初始数据的处理进度可以包括初始数据的数据标识,也可以包括已经执行的任务和这些已经执行的任务所对应的执行结果。处理进度可以直接输出展示在任务调度系统上,或者在用户想要了解任务运行情况时通过手动导出的方式获取。通过应用本实施例的技术方案,用户可以方便地了解当前数据处理任务的运行情况,有利于提升用户的结果查询体验。

步骤203,在多个数据处理任务中获取所述第一任务触发信号对应的第一任务,并获取第一待处理数据;

步骤204,统计当前运行任务的数量;

步骤205,当所述当前运行任务的数量大于或等于预设数量时,将所述第一任务加入待执行任务队列中,并在监控到所述当前运行任务的数量小于所述预设数量时执行所述待执行任务队列中的任务;

步骤206,当所述当前运行任务的数量小于所述预设数量时,执行所述第一任务。

在该实施例中,根据第一任务触发信号确定第一任务,并获取第一待处理数据之后,对当前正在运行的任务的数量进行统计。当正在运行的任务的数量小于预设数量时,直接执行第一任务。当正在运行的任务的数量大于或者等于预设数量时,将接收到第一任务触发信号的第一任务加入到待执行任务队列中。例如,系统中预先建立的数据处理任务共有五个,分别是第一任务至第五任务,在接收到第一任务触发信号K时,正在运行的数据处理任务包括第一任务触发信号A至D对应的四个第一任务,第二任务触发信号E至G对应的三个第二任务,以及第四任务触发信号H至J对应的三个第四任务,而预设数量为10,那么此时第一任务触发信号K对应的第一任务无法执行,需要加入到待执行任务队列中,并第一任务被加入到待执行队列后,任务调度系统仍旧实时监控正在运行的任务的数量,在监控到正在运行的任务的数量小于预设数量的情况下,执行待执行任务队列中的任务。本申请实施例在执行第一任务前先判断正在运行的任务的数量,当正在运行的任务的数量小于预设数量时才执行第一任务,能够有效避免同时运行的任务数量过大的问题,有利于限制系统的数据处理量,实现合理地占用系统资源的效果。

在本申请实施例中,可选地,步骤205中“在监控到所述当前运行任务的数量小于所述预设数量时执行所述待执行任务队列中的任务”,具体包括:

步骤205-1,在监控到所述当前运行任务的数量小于所述预设数量时,获取所述待执行任务队列中的末端任务,并执行所述末端任务,其中,所述待执行任务队列中第一其他任务的执行不依赖所述末端任务的执行结果,所述第一其他任务为所述待执行任务队列中除所述末端任务外的任务。

在该实施例中,任务调度系统对当前正在运行的任务的数量进行监控,当正在运行的任务的数量小于预设数量时,从待执行任务队列中的所有任务中找出末端任务,对末端任务加以执行。在这里,末端任务是一个相对概念,末端任务相对于队列中剩余的第一其他任务来说,在各数据处理任务构成的任务链中,处于相对于第一其他任务的最下级位置,第一其他任务的执行不需要依赖末端任务的直接或间接执行结果。例如,任务调度系统中预先建立有五个数据处理任务,这五个数据处理任务分别是第一任务至第五任务,待执行任务队列中现有三个待处理任务,分别是第二任务触发信号A对应的第二任务、第三任务触发信号B对应的第三任务以及第五任务触发信号C对应的第五任务,那么在此待执行任务队列中,第五任务触发信号C对应的第五任务就是末端任务。本申请实施例通过优先处理待执行任务队列中的末端任务,这样可以保证一份数据的全链路产出,即优先保证一份数据处理完毕后,再处理其他数据,有利于提升数据处理的完整性,便于用户第一时间查阅处理完毕的数据。

在本申请实施例中,可选地,步骤205中“在监控到所述当前运行任务的数量小于所述预设数量时执行所述待执行任务队列中的任务”,具体包括:

步骤205-2,在监控到所述当前运行任务的数量小于所述预设数量时,获取所述待执行任务队列中的前端任务,并执行所述前端任务,其中,所述前端任务的执行不依赖所述待执行任务队列中第二其他任务的执行结果,所述第二其他任务为所述待执行任务队列中除所述前端任务外的任务。

在该实施例中,任务调度系统对当前正在运行的任务的数量进行监控,当正在运行的任务的数量小于预设数量时,从待执行任务队列中的所有任务中找出前端任务,对前端任务加以执行。在这里,前端任务同样是一个相对概念,前端任务相对于队列中剩余的第二其他任务来说,在各数据处理任务构成的任务链中,处于相对于第二其他任务的最上级位置,第二其他任务的执行需要依赖前端任务的直接或间接执行结果。例如,任务调度系统中预先建立有五个数据处理任务,这五个数据处理任务分别是第一任务至第五任务,待执行任务队列中现有三个待处理任务,分别是第二任务触发信号A对应的第二任务、第四任务触发信号B对应的第四任务以及第五任务触发信号C对应的第五任务,那么在此待执行任务队列中,第二任务触发信号A对应的第二任务就是前端任务。本申请实施例通过优先处理待执行任务队列中的前端任务,这样可以保证所有数据的前面阶段处理完成后再处理下一阶段,即优先保证全部数据的第一阶段处理完毕后,再对这些数据进行下一阶段的处理,有利于提升数据处理阶段的完整性。

此外,当任务调度系统监控到当前运行任务的数量小于预设数量时,还可以按照其他预设顺序执行待执行任务队列中的任务。其他预设顺序可以为先进入待执行任务队列中的任务先执行的顺序,也可以为后进入待执行任务队列中的任务先执行的顺序。

在本申请实施例中,可选地,所述方法还包括:创建数据处理任务,其中,所述数据处理任务包括数据处理规则、触发信号以及执行结束信号。

在该实施例中,在接收第一任务触发信号前,任务调度系统可以在工作人员的操作下创建数据处理任务。例如,对某信号进行处理需要经过五个数据处理任务的处理,那么这五个数据处理任务需要预先创建并存储在任务调度系统中。在这里,数据处理任务中包括数据处理规则、触发信号以及数据处理任务结束后广播的执行结束信号,其中,触发信号为预先设定的可以触发对应数据处理任务的信号。

此外,当预先存储在任务调度系统中的数据处理任务处于执行过程中时,工作人员也可以创建全新的数据开发任务加入到已经存在的数据处理任务中,新增任务与已有任务之间的依赖关系可以根据实际需要确定。例如,任务调度系统中已经存储有五个数据处理任务,分别是第一任务到第五任务,其中,第一任务执行结束后产生的第二任务触发信号可以触发第二任务的执行,以此类推。当工作人员想要将新创建的第六任务的触发直接依赖于第三任务时,那么在创建第六任务时,除了包括数据处理规则,还需要将触发第六任务的触发信号设置为原第四任务触发信号,同时确定第六任务的执行结束信号,并将原第四任务触发信号更改为第六任务的执行结束信号。

进一步的,作为图1方法的具体实现,本申请实施例提供了一种任务调度装置,如图3所示,该装置包括:

信号接收模块,用于接收第一任务触发信号;

任务获取模块,用于在多个数据处理任务中获取所述第一任务触发信号对应的第一任务,并获取第一待处理数据;

任务执行模块,用于执行所述第一任务对所述第一待处理数据进行处理产生第二待处理数据,并广播第二任务触发信号,其中,所述第二任务触发信号用于触发第二任务执行,所述第二任务的执行依赖于所述第一任务的执行结果。

在本申请实施例中,可选地,所述任务调度装置,还包括:

运行任务统计模块,用于所述获取第一待处理数据之后,统计当前运行任务的数量;

待执行任务处理模块,用于当所述当前运行任务的数量大于或等于预设数量时,将所述第一任务加入待执行任务队列中,并在监控到所述当前运行任务的数量小于所述预设数量时执行所述待执行任务队列中的任务;

所述任务执行模块,还用于当所述当前运行任务的数量小于所述预设数量时,执行所述第一任务。

在本申请实施例中,可选地,所述待执行任务处理模块包括末端任务执行单元,

所述末端任务执行单元,用于在监控到所述当前运行任务的数量小于所述预设数量时,获取所述待执行任务队列中的末端任务,并执行所述末端任务,其中,所述待执行任务队列中第一其他任务的执行不依赖所述末端任务的执行结果,所述第一其他任务为所述待执行任务队列中除所述末端任务外的任务。

在本申请实施例中,可选地,所述待执行任务处理模块包括前端任务执行单元,

所述前端任务执行单元,用于在监控到所述当前运行任务的数量小于所述预设数量时,获取所述待执行任务队列中的前端任务,并执行所述前端任务,其中,所述前端任务的执行不依赖所述待执行任务队列中第二其他任务的执行结果,所述第二其他任务为所述待执行任务队列中除所述前端任务外的任务。

在本申请实施例中,可选地,所述任务调度装置,还包括:

任务创建模块,用于创建数据处理任务,其中,所述数据处理任务包括数据处理规则、触发信号以及执行结束信号。

在本申请实施例中,可选地,所述第一任务触发信号包括初始数据对应的数据标识,所述任务调度装置,还包括:

任务执行结果处理模块,用于所述接收第一任务触发信号之后,依据所述第一任务触发信号,更新所述初始数据的处理进度,其中,所述初始数据的处理进度包括所述初始数据对应的数据标识、已执行任务以及所述已执行任务对应的执行结果。

需要说明的是,本申请实施例提供的一种任务调度装置所涉及各功能单元的其他相应描述,可以参考图1、图2方法中的对应描述,在此不再赘述。

基于上述如图1、图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图1、图2所示的任务调度方法。

基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

基于上述如图1、图2所示的方法,以及图3所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1、图2所示的任务调度方法。

可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。

本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。在接收到第一任务触发信号后,根据第一任务触发信号从多个数据处理任务中获取与该信号对应的第一任务,并获取第一待处理数据,第一任务对第一待处理数据进行处理后,产生第二待处理数据,并生成第二任务触发信号进行广播。本申请实施例中的数据处理任务在特定的任务触发信号的触发下被调度、执行,并在每一任务结束后生成下级任务触发信号,通过信号流的方式实时调度系统中的各数据处理任务,解决了现有技术中利用时间周期对数据处理任务进行调度时产生的数据处理不及时问题,或数据处理频繁导致占用过多系统资源的问题,有利于提升数据处理的时效性以及数据开发任务的管理效率,避免造成系统资源的浪费。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

相关技术
  • 任务调度方法、任务调度系统、存储介质和计算机设备
  • 任务调度方法、装置、任务调度平台及计算机存储介质
技术分类

06120113228982