任务调度方法、装置、计算机设备及可读存储介质与流程

文档序号:23754023发布日期:2021-01-29 14:58阅读:65来源:国知局
任务调度方法、装置、计算机设备及可读存储介质与流程

[0001]
本发明涉及计算机技术领域,尤其涉及一种任务调度方法、装置、计算机设备及可读存储介质。


背景技术:

[0002]
随着科技的发展和互联网应用的增加,应用于网络的数据很多,为了有效的对数据进行运算和存储,大多采用数据处理的工具,包括传统关系型数据库,、大数据、还有一些其他的非关系型数据库,但是前述这些不同种类的数据库处理数据时,需要依赖各自的调度任务,比如,hadoop任务和datastage任务是通过不同的工具在不同的工作平台进行调度。
[0003]
现有的各个不同的数据处理工具之间的任务调度不能关联,只能通过各自自定义检测工具或者批次数据检测来识别各个调度任务之间的数据依赖,尤其是比较大型的项目,使用多个不同数据处理工具,需要人工沟通协作,增加了整体流程的复杂性,不利于后续的项目维护、调优。


技术实现要素:

[0004]
本发明的目的是提供一种任务调度方法、装置、计算机设备及可读存储介质,用于解决现有的各个不同的数据处理工具之间的任务调度不能关联,人工处理流程复杂且不利于后续维护的问题。
[0005]
为实现上述目的,本发明提供一种任务调度方法,包括:
[0006]
获取任务信息,所述任务信息包括至少一个服务节点的调度任务;
[0007]
同步所述任务信息中的所述调度任务;
[0008]
监测所述服务节点中所述调度任务的运行状态;
[0009]
获取与所述调度任务关联的关联任务及依赖关系;
[0010]
根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态;
[0011]
其中,所述依赖关系包括直接制约关系和间接制约关系;所述运行状态包括未运行状态、开始运行状态以及结束运行状态。
[0012]
进一步的,所述监测所述服务节点中所述调度任务的运行状态,包括以下:
[0013]
获取所述服务节点的工作状态,所述工作状态包括空闲状态和忙碌状态;
[0014]
判断所述服务节点的负载状态是否为空闲状态;
[0015]
若是,获取与所述进服务器节点中所述调度任务关联的关联任务并建立依赖关系;
[0016]
若否,将所述调度任务存于一等待队列中。
[0017]
进一步的,获取与所述调度任务关联的关联任务并建立依赖关系,包括以下:
[0018]
根据所述调度任务携带的关联标识,查询关联任务集合,以获取与所述调度任务
关联的所述关联任务;
[0019]
根据所述关联标识的状态信息,确认所述调度任务与所述关联任务的依赖关系。
[0020]
进一步的,根据所述关联标识的状态信息,确认所述调度任务与所述关联任务的依赖关系,包括:
[0021]
所述状态信息为任务优先级;
[0022]
当所述关联标识的任务优先级高于预设任务时,所述调度任务与所述关联任务之间的依赖关系为直接制约关系;
[0023]
当所述关联标识的任务优先级低于预设任务时,所述调度任务与所述关联任务之间的依赖关系为间接制约关系。
[0024]
进一步的,当所述依赖关系为直接制约关系,根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态,包括以下:
[0025]
建立第一执行表单,所述第一执行表单包括具有直接制约关系的调度任务和关联任务,每一所述调度任务或所述关联任务均关联用于标识执行顺序的优先级标签和执行周期;
[0026]
基于所述第一执行表单依次控制服务节点中所述调度任务的运行状态和所述关联任务的运行状态。
[0027]
进一步的,当当所述依赖关系为间接制约关系,根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态,包括以下:
[0028]
建立第二执行表单,所述第二执行表单包括具有间接制约关系的调度任务和关联任务,每一所述调度任务或所述关联任务关联用于标识执行顺序的优先级标签和执行周期;
[0029]
基于所述第二执行表单依次控制服务节点中所述调度任务的运行状态和所述关联任务的运行状态。
[0030]
进一步的,所述控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态,包括以下:
[0031]
采用api调用控制所述调度任务或所述关联任务处于开始运行状态;
[0032]
和/或,控制所述调度任务或所述关联任务处于结束运行状态。
[0033]
为实现上述目的,本发明还提供一种任务调度装置,包括:
[0034]
获取模块,用于获取任务信息,所述任务信息包括至少一个服务节点的调度任务;
[0035]
同步模块,用于同步所述任务信息中的所述调度任务;
[0036]
监测模块,用于监测所述服务节点中所述调度任务的运行状态;
[0037]
关联模块,用于获取与所述调度任务关联的关联任务,并建立依赖关系;
[0038]
控制模块,用于根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态;
[0039]
其中,所述依赖关系包括直接制约关系和间接制约关系;所述运行状态包括未运行状态、开始运行状态以及结束运行状态。
[0040]
为实现上述目的,本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任务调度方法的步骤。
[0041]
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,各存储介质上存储有计算机程序,所述多个存储介质存储的所述计算机程序被处理器执行时共同实现上述任务调度方法的步骤。
[0042]
本发明提供的任务调度方法、装置、计算机设备及可读存储介质,通过获取各个服务节点的调度任务,对所述调度任务进行同步和实时监测,而后获取各个调度任务之间的依赖关系以及关联任务,并根据依赖关系对各个调度任务或关联任务进行运行状态的控制,通过上述方式实现对调度任务和关联任务的自动控制,解决了现有的各个不同的数据处理工具之间的任务调度不能关联,人工处理流程复杂且不利于后续维护的问题。
附图说明
[0043]
图1为本发明所述任务调度方法实施例一的流程图;
[0044]
图2为本发明所述任务调度方法实施例一中根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态的流程图;
[0045]
图3为本发明所述任务调度方法实施例一中获取与所述调度任务关联的关联任务并建立依赖关系态的流程图;
[0046]
图4为本发明所述任务调度方法实施例一中根据所述关联标识的状态信息,确认所述调度任务与所述关联任务的依赖关系的流程图;
[0047]
图5为本发明所述任务调度装置实施例二的程序模块示意图;
[0048]
图6为本发明计算机设备实施例三中计算机设备的硬件结构示意图。
[0049]
附图标记:
[0050]
6、任务调度装置 61、获取模块 62、同步模块
[0051]
63、监测模块 64、关联模块 65、控制模块
[0052]
651、第一控制单元 652、第二控制单元
[0053]
7、计算机设备 71、存储器 72、处理器 73、网络接口
具体实施方式
[0054]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055]
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0056]
本发明提供的任务调度方法、装置、计算机设备及可读存储介质,适用于计算机应用领域,为提供一种基于获取模块、同步模块、监测模块、关联模块、控制模块的任务调度方法。本发明通过获取模块获取各个服务节点的调度任务,采用同步模块和监测模块对所述任务信息中的调度任务进行同步和实时监测,而后采用关联模块获取各个调度任务之间的依赖关系以及关联任务,最后采用控制模块根据依赖关系对各个调度任务或关联任务进行运行状态的控制,通过上述方式对各个调度任务和关联任务进行自动控制,减少人工操作过程的复杂性,实现数据处理流程连接性。
[0057]
实施例一
[0058]
请参阅图1,本实施例的一种任务调度方法,应用于服务器端,作为调度平台,用于对多个不同数据库服务节点中的任务执行状态进行控制,包括以下步骤:
[0059]
s10:获取任务信息,所述任务信息包括至少一个服务节点的调度任务;
[0060]
在本实施方式中,所述服务节点为提供不同数据库的节点服务器,本方案中主要是通过不同数据库的任务信息统一到同一服务器端上进行运行,所述调度任务包括基于不同平台实现的大数据调用任务,包括但不限于hadoop任务、datastage任务、kettle任务等。需要说明的是,hadoop是一个大数据框架,实现分布式数据处理系统,hadoop解决了数据存储问题(hdfs分布式文件系统)和分布式计算问题(mapre-duce),对于hadoop任务,hadoop平台内需要设置其中某一节点服务器为主服务节点,用于启动hadoop任务并将hadoop的任务信息反馈给作为调度平台的服务器端。
[0061]
需要特别说明的是,本方案中,调度平台是用来提供控制这个任务的运行、停止、状态监控。任务实际上还是在原有的平台上进行运行的,比如hadoop任务还是运行在hadoop平台,datastage任务还是运行在节点服务器中,通过该任务调度方法实现对各个任务运行或停止的控制。
[0062]
s20:同步所述任务信息中的所述调度任务;
[0063]
在本实施方式中,任务同步是指一个任务需要等待另一个任务或中断服务程序发送相应的同步信号后才能继续执行,同步所述调度任务通过预先设置任务之间的关联关系来实现,以便于后续控制调度任务和关联任务的运行状态。
[0064]
s30:监测所述服务节点中所述调度任务的运行状态;
[0065]
其中,所述运行状态包括未运行状态、开始运行状态以及结束运行状态。
[0066]
具体的,所述监测所述服务节点中所述调度任务的运行状态,参阅图2,包括以下:
[0067]
s31:获取所述服务节点的工作状态,所述工作状态包括空闲状态和忙碌状态;
[0068]
s32:判断所述服务节点的负载状态是否为空闲状态;
[0069]
具体的,根据服务节点的工作状态进行后续步骤s33和s34的操作,由于任务还是在各个服务节点上执行,上述操作可以减少对服务节点性能的占用,进一步确保各服务节点的任务执行。
[0070]
s33:若是,获取与所述进服务器节点中所述调度任务关联的关联任务并建立依赖关系;
[0071]
s34:若否,将所述调度任务存于一等待队列中,根据预设时间间隔获取所述服务节点的工作状态,直至服务节点的负载状态为空闲状态,执行步骤s33。
[0072]
在本实施方式中,采用监测模块实时监测调度任务的运行状态,通过实时监测用于实现对各个调度任务的统一管理和维护。作为举例的,采用cronmon对定时任务进行监控,cronmon是一个计划任务(定时任务)监控系统,可以对循环执行的程序和脚本进行监控告警,同时可以将监控任务划分到不同业务下面,建立业务、通知人和监控任务的多层级关系;采用celery实现任务状态监控,celery是python里常用的一个异步任务队列,可以用于监控一些任务或者定时任务的运行状态;还可以通过以一定的间隔发送https请求到特定的url实现监控。
[0073]
s40:获取与所述调度任务关联的关联任务并建立依赖关系;
[0074]
其中,所述依赖关系包括直接制约关系和间接制约关系;
[0075]
具体的,所述获取与所述调度任务关联的关联任务并建立依赖关系,参阅图3,包括以下:
[0076]
s41:根据所述调度任务携带的关联标识,查询关联任务集合,以获取与所述调度任务关联的所述关联任务;
[0077]
具体的,每一调度任务均可关联多个关联任务,具备唯一关联标识。
[0078]
s42:根据所述关联标识的状态信息,确认所述调度任务与所述关联任务的依赖关系。
[0079]
所述状态信息为任务优先级。更具体的,所述根据所述关联标识的状态信息,确认所述调度任务与所述关联任务的依赖关系,参阅图4,包括:
[0080]
s42-1:判断所述关联标识的任务优先级是否高于预设任务;
[0081]
具体的,所述预设任务用于判断调度任务或关联任务之间的依赖关系。
[0082]
s42-2:当所述关联标识的任务优先级高于预设任务时,所述调度任务与所述关联任务之间的依赖关系为直接制约关系;
[0083]
具体的,所述直接制约关系源于任务间的合作;作为举例而非限定的,比如a任务依赖于b任务,那么针对b任务整体设置一个当前的运行状态(未运行、开始运行、结束运行),当a任务到达运行时间的时候,通过识别b任务的状态是否是已完成进而控制a任务是否进行运行;
[0084]
s42-3:当所述关联标识的任务优先级低于预设任务时,所述调度任务与所述关联任务之间的依赖关系为间接制约关系。
[0085]
所述间接制约关系源于对资源的共享;作为举例而非限定的,a、c任务依赖于b任务,那么针对b任务整体设置一个运行状态(未运行、开始运行、结束运行),针对c任务整体设置一个运行状态(未运行、开始运行、结束运行),当a任务到达运行时间的时候,通过识别b任务和c任务的状态是否是已完成进而控制a任务是否进行运行。
[0086]
s50:根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态。
[0087]
参阅图2,当所述依赖关系为直接制约关系,则上述步骤s50中所述根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态,包括以下步骤:
[0088]
s51:根据所述直接制约关系中的执行顺序依次控制服务节点中所述调度任务的运行状态和所述关联任务的运行状态。
[0089]
在本实施方式中,所述直接制约关系中的执行顺序例如:a任务依赖于b任务的完成,则b任务执行顺序优先于a任务。
[0090]
具体的,上述根据直接制约关系依次控制服务节点中所述调度任务的运行状态和所述关联任务的运行状态,包括以下步骤:
[0091]
s51-1:建立第一执行表单,所述第一执行表单包括具有直接制约关系的调度任务和关联任务,每一所述调度任务或所述关联任务均关联用于标识执行顺序的优先级标签和执行周期;
[0092]
在本实施方式中,针对不同的任务,会有不同的调度频率,所以本方案中针对不同
的任务,做了两层维度的依赖关系,包括任务状态维度和任务周期维度,作为举例而非限定的,比如a任务,a任务假如是每天运行一次,每天的一次就是其中一个周期的维度,设b任务依赖于a任务,则对a任务预先整体设置一个运行状态,即在该周期内任务是否完成,不同的任务可以设置整体任务的依赖关系,也可以设置当前周期的依赖关系。
[0093]
s51-2:基于所述第一执行表单依次控制服务节点中所述调度任务的运行状态和所述关联任务的运行状态。
[0094]
具体的,在上述方案中,所述执行顺序的优先级标签可以根据执行周期进行调整,根据所述执行周期判断该任务是否处于当前周期内的未运行状态,若是,则提高该任务的优先级。
[0095]
当所述依赖关系为所述间接制约关系时,则上述步骤s50中所述根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态,包括以下:
[0096]
s52:根据所述间接制约关系中的互斥顺序控制服务节点的所述调度任务的运行状态和所述关联任务的运行状态。
[0097]
在本实施方式中,所述互斥顺序根据各个调度任务或关联任务处理时间以及依赖资源的使用情况获得。
[0098]
具体的,根据所述间接制约关系中的互斥顺序控制服务节点的所述调度任务的运行状态和所述关联任务的运行状态,包括以下:
[0099]
s52-1:建立第二执行表单,所述第二执行表单包括具有间接制约关系的调度任务和关联任务,每一所述调度任务或所述关联任务关联用于标识执行顺序的优先级标签和执行周期;
[0100]
在本实施方式中,所述具有间接制约关系的调度任务和关联任务,作为举例的,数据量大保单信息处理的任务通常是使用大数据平台或hadoop平台处理的,处理后的数据使用是oracle数据库处理的用来进行前端展示、投保、理赔、支付等操作,此时大数据任务和hadoop任务则属于间接制约关系的任务,大数据任务或hadoop任务与oracle任务之间则属于如上所述直接制约关系的任务。
[0101]
s52-2:基于所述第二执行表单依次控制服务节点中所述调度任务的运行状态和所述关联任务的运行状态。
[0102]
所述控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态,包括以下步骤:
[0103]
采用api调用控制所述调度任务或所述关联任务处于开始运行状态;和/或,控制所述调度任务或所述关联任务处于结束运行状态。
[0104]
具体的,作为补充说明的,对于datastage、kettle任务,可直接通过api调用对应的datastage、kettle工具即可,对于hadoop任务,则通过api调用信发送至上述步骤s1中所述hadoop平台中主服务器即可。
[0105]
在上述实施方式中,需要特别说明的是,各个调度任务或关联任务是在原有的平台上进行运行的,本方案中所述任务调度方式是提供一任务调度平台,用于对上述调度任务或关联任务进行控制运行或停止。
[0106]
上述第一执行表单和第二执行表单可上传至区块链以便于后续作为参考样本或训练样本,上传至区块链可保证其安全性和对用户的公正透明性,用户设备可以从区块链
中下载得该摘要信息,以便查证优先级列表是否被篡改,后续也可以从区块链中下载获得对应金额数据的语音文件用于语音播报,无需生成过程,有效提高语音处理效率。
[0107]
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0108]
本申请所述任务调度处理过程,获取各个服务节点的调度任务合并的任务信息,对所述任务信息中的调度任务进行同步和实时监测,并获取各个调度任务之间的依赖关系以及关联任务,根据依赖关系对各个调度任务或关联任务进行运行状态的控制,解决了现有的各个不同的数据处理工具之间的任务调度不能关联,只能通过各自自定义检测工具或者批次数据检测来识别各个调度任务之间的数据依赖的问题,通过上述方式建立一个任务调度平台,对各个调度任务和关联任务进行自动控制,减少人工操作过程的复杂性,上述任务调度方法能够实现不同系统、不同平台的任务放到统一的平台上运行,实现不同的数据交互更为高效快捷、开发维护方便,更进一步,作为举例的,本方案的任务调度方法具体可用于保单信息处理、账户信息维护等场景中。
[0109]
实施例二:
[0110]
请参阅图5,本实施例的一种任务调度装置6,包括:获取模块61、同步模块62、监测模块63、关联模块64以及控制模块65。
[0111]
获取模块61,用于获取任务信息,所述任务信息包括至少一个服务节点的调度任务;
[0112]
同步模块62,用于同步所述任务信息中的所述调度任务;
[0113]
监测模块63,用于监测所述服务节点中所述调度任务的运行状态;
[0114]
其中,所述运行状态包括未运行状态、开始运行状态以及结束运行状态;
[0115]
关联模块64,用于获取与所述调度任务关联的关联任务并建立依赖关系;
[0116]
其中,所述依赖关系包括直接制约关系和间接制约关系;
[0117]
控制模块65,用于根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态。
[0118]
具体的,本方案中针对不同的任务(包括调度任务和节点任务),每一任务对应的依赖关系均包括任务状态维度和任务周期维度。
[0119]
优选的,所述控制模块65还包括以下:
[0120]
第一控制单元651,用于当所述依赖关系为直接制约关系,根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态;
[0121]
第二控制单元652,用于当所述依赖关系为所述间接制约关系时,根据所述依赖关系控制服务节点的所述关联任务的运行状态和所述调度任务的运行状态。
[0122]
本技术方案基于运维中过程优化,通过获取模块获取各个服务节点的调度任务合并的任务信息,采用同步模块和监测模块对所述任务信息中的调度任务进行同步和实时监测,而后采用关联模块获取各个调度任务之间的依赖关系以及关联任务,控制模块根据依赖关系对各个调度任务或关联任务进行运行状态的控制,比如开始运行或停止运行,通过
code division multiple access,wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。
[0129]
需要指出的是,图4仅示出了具有部件71-73的计算机设备7,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
[0130]
在本实施例中,存储于存储器71中的所述任务调度装置6还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器71中,并由一个或多个处理器(本实施例为处理器72)所执行,以完成本发明。
[0131]
实施例四:
[0132]
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器72执行时实现相应功能。本实施例的计算机可读存储介质用于存储任务调度装置,被处理器72执行时实现实施例一的任务调度方法。
[0133]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0134]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
[0135]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1