基于大数据行为调度应用任务的方法、服务器及存储介质技术

技术编号:21398612 阅读:14 留言:0更新日期:2019-06-19 06:54
本申请公开了一种基于大数据行为调度应用任务的方法、服务器及存储介质,该方法包括:采集服务器当前的资源状态信息,若根据资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。能够提升任务的执行效率,以及减少任务未执行完带来的业务影响。

【技术实现步骤摘要】
基于大数据行为调度应用任务的方法、服务器及存储介质
本申请涉及大数据处理
,尤其涉及基于大数据行为调度应用任务的方法、服务器及存储介质。
技术介绍
在设置业务流程中,需要对业务流程中的各流程节点(即任务程序)分别进行设置。例如,任务程序都是通过定时进行调度的,比如某个任务需要0点开始,预估执行30分钟,然后如果另一个程序依赖这个任务时,则选择0点40分开始执行,按照依赖关系进行串联执行,人为的安排各个任务的定时执行时间。但是,流程节点较多(即任务较多)时,如果继续采用这种方式,由于各流程节点之间存在严重依赖前后流程节点的串行关系,如果对某个定时任务的执行时间估计不够准确的话,则会导致执行完整个业务流程需要非常长的时间,甚至导致第二天可能需要的报表或数据无法完成,严重影响工作流程。
技术实现思路
本申请的主要目的在于解决现有机制中各流程节点之间存在严重依赖前后流程节点的串行关系所存在的业务流程执行时间较长的问题。第一方面,本申请提供了一种基于大数据行为调度应用任务的方法,所述方法由服务器执行,所述服务器部署多个任务,所述方法包括:采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率;若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。在一些可能的设计中,所述方法还包括:按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。在一些可能的设计中,所述多个任务由任务树的方式存储,所述任务树包括多个节点;当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,包括:对所述任务树中各节点的执行状态进行监控,采用异步方式判断所述任务树中各节点的执行状态;当正在执行的任务中的第一任务完成后,为所述第一任务设置标识符,对应更新所述第一任务在任务树中的节点状态;根据各个任务的执行时长的历史记录及所述资源状态信息,先于串行任务执行任务链中的任务,串行任务的优先级低于任务链的优先级。在一些可能的设计中,当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的顺序,包括:若根据所述资源状态信息确定所述服务器当前的资源不足,则根据各个任务的执行时长的历史记录及所述资源状态信息,先于包含一个未执行任务的任务链执行包含两个以上未执行任务的任务链。在一些可能的设计中,所述方法还包括:设置所述多个线程的任务最大数量、任务最小数量和线程的最长空闲时间;所述多个线程包括调度线程;所述调用所述多个线程并发执行多个任务,包括:启动所述多个线程执行任务,当存在当前执行的任务量趋近于所述任务最大数量的线程,或存在当前执行的任务量趋于所述任务最小数量的线程,或存在空闲的线程时,调用所述调度线程根据当前执行的任务量和带执行的任务量动态调整各线程的任务数量;执行所述任务链中的一个任务后,顺序执行所述任务链中的顺序排列的下一个任务。在一些可能的设计中,每个所述串行任务、以及每个所述任务链的起始执行时间相同。本申请第二方面提供一种服务器,所述服务器部署多个任务,所述服务器具有实现对应于上述第一方面提供的基于大数据行为调度应用任务的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。一种可能的设计中,所述服务器包括:获取模块,用于采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率;处理模块,用于若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;所述处理模块还用于根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。一种可能的设计中,所述处理模块还用于:按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。一种可能的设计中,当所述多个任务包括至少两个任务链时,所述处理模块用于:根据各个任务的执行时长的历史记录及所述资源状态信息,先于串行任务执行任务链中的任务,串行任务的优先级低于任务链的优先级。在一些可能的设计中,当所述多个任务包括至少两个任务链时,所述处理模块用于:若根据所述资源状态信息确定所述服务器当前的资源不足,则根据各个任务的执行时长的历史记录及所述资源状态信息,先于包含一个未执行任务的任务链执行包含两个以上未执行任务的任务链。在一些可能的设计中,所述处理模块用于:设置所述多个线程的任务最大数量、任务最小数量和线程的最长空闲时间;所述多个线程包括调度线程;启动所述多个线程执行任务,当存在当前执行的任务量趋近于所述任务最大数量的线程,或存在当前执行的任务量趋于所述任务最小数量的线程,或存在空闲的线程时,调用所述调度线程根据当前执行的任务量和带执行的任务量动态调整各线程的任务数量;执行所述任务链中的一个任务后,顺序执行所述任务链中的顺序排列的下一个任务。在一些可能的设计中,每个所述串行任务、以及每个所述任务链的起始执行时间相同。本申请又一方面提供了一种服务器,其包括至少一个连接的处理模块、存储器和收发器,其中,所述存储器用于存储程序代码,所述处理模块用于调用所述存储器中的程序代码来执行上述各方面所述的方法。本申请又一方面提供了一种计算机存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。与现有机制相比,本申请中,根据采集的资源状态信息确定所述服务器当前的资源充足时启动多个线程,调用多个线程并发执行多个任务。由于这多个任务相互之间不存在依赖关系,通过并行没有依赖关系的任务,实现从局部缩短没有依赖关系的任务之间的处理时间,故能够提升任务的执行效率。此外,根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。通过实时调度,能够提升任务的执行效率以及减少任务未执行完带来的业务影响。附图说明图1为本申请实施例中基于大数据行为调度应用任务的方法的一种流程示意图;图2为本本文档来自技高网...

【技术保护点】
1.一种基于大数据行为调度应用任务的方法,所述方法由服务器执行,所述服务器部署多个任务,其特征在于,所述方法包括:采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率;若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。

【技术特征摘要】
1.一种基于大数据行为调度应用任务的方法,所述方法由服务器执行,所述服务器部署多个任务,其特征在于,所述方法包括:采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率;若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。3.根据权利要求2所述的方法,其特征在于,所述多个任务由任务树的方式存储,所述任务树包括多个节点;当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,包括:对所述任务树中各节点的执行状态进行监控,采用异步方式判断所述任务树中各节点的执行状态;当正在执行的任务中的第一任务完成后,为所述第一任务设置标识符,对应更新所述第一任务在任务树中的节点状态;根据各个任务的执行时长的历史记录及所述资源状态信息,先于串行任务执行任务链中的任务,串行任务的优先级低于任务链的优先级。4.根据权利要求2所述的方法,其特征在于,当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的顺序,包括:若根据所述资源状态信息确定所述服务器当前的资源不足,则根据各个任务的执行时长的历史记录及所述资源状态信息,先于包含一个未执行任务的任务链执行包含两个以上未执行任务的任务链。5.根据权利要求2-4中任一项所述的方法,其...

【专利技术属性】
技术研发人员:乐志能
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1