CN109901926A - 基于大数据行为调度应用任务的方法、服务器及存储介质 - Google Patents
基于大数据行为调度应用任务的方法、服务器及存储介质 Download PDFInfo
- Publication number
- CN109901926A CN109901926A CN201910070469.5A CN201910070469A CN109901926A CN 109901926 A CN109901926 A CN 109901926A CN 201910070469 A CN201910070469 A CN 201910070469A CN 109901926 A CN109901926 A CN 109901926A
- Authority
- CN
- China
- Prior art keywords
- task
- dependence
- server
- execution
- chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012163 sequencing technique Methods 0.000 claims abstract description 6
- 230000006399 behavior Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Abstract
本申请公开了一种基于大数据行为调度应用任务的方法、服务器及存储介质,该方法包括:采集服务器当前的资源状态信息,若根据资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。能够提升任务的执行效率,以及减少任务未执行完带来的业务影响。
Description
技术领域
本申请涉及大数据处理技术领域,尤其涉及基于大数据行为调度应用任务的方法、服务器及存储介质。
背景技术
在设置业务流程中,需要对业务流程中的各流程节点(即任务程序)分别进行设置。例如,任务程序都是通过定时进行调度的,比如某个任务需要0点开始,预估执行30分钟,然后如果另一个程序依赖这个任务时,则选择0点40分开始执行,按照依赖关系进行串联执行,人为的安排各个任务的定时执行时间。
但是,流程节点较多(即任务较多)时,如果继续采用这种方式,由于各流程节点之间存在严重依赖前后流程节点的串行关系,如果对某个定时任务的执行时间估计不够准确的话,则会导致执行完整个业务流程需要非常长的时间,甚至导致第二天可能需要的报表或数据无法完成,严重影响工作流程。
发明内容
本申请的主要目的在于解决现有机制中各流程节点之间存在严重依赖前后流程节点的串行关系所存在的业务流程执行时间较长的问题。
第一方面,本申请提供了一种基于大数据行为调度应用任务的方法,所述方法由服务器执行,所述服务器部署多个任务,所述方法包括:
采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率;
若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;
根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。
在一些可能的设计中,所述方法还包括:
按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。
在一些可能的设计中,所述多个任务由任务树的方式存储,所述任务树包括多个节点;当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,包括:
对所述任务树中各节点的执行状态进行监控,采用异步方式判断所述任务树中各节点的执行状态;
当正在执行的任务中的第一任务完成后,为所述第一任务设置标识符,对应更新所述第一任务在任务树中的节点状态;
根据各个任务的执行时长的历史记录及所述资源状态信息,先于串行任务执行任务链中的任务,串行任务的优先级低于任务链的优先级。
在一些可能的设计中,当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的顺序,包括:
若根据所述资源状态信息确定所述服务器当前的资源不足,则根据各个任务的执行时长的历史记录及所述资源状态信息,先于包含一个未执行任务的任务链执行包含两个以上未执行任务的任务链。
在一些可能的设计中,所述方法还包括:
设置所述多个线程的任务最大数量、任务最小数量和线程的最长空闲时间;所述多个线程包括调度线程;
所述调用所述多个线程并发执行多个任务,包括:
启动所述多个线程执行任务,当存在当前执行的任务量趋近于所述任务最大数量的线程,或存在当前执行的任务量趋于所述任务最小数量的线程,或存在空闲的线程时,调用所述调度线程根据当前执行的任务量和带执行的任务量动态调整各线程的任务数量;
执行所述任务链中的一个任务后,顺序执行所述任务链中的顺序排列的下一个任务。
在一些可能的设计中,每个所述串行任务、以及每个所述任务链的起始执行时间相同。
本申请第二方面提供一种服务器,所述服务器部署多个任务,所述服务器具有实现对应于上述第一方面提供的基于大数据行为调度应用任务的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述服务器包括:
获取模块,用于采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率;
处理模块,用于若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;
所述处理模块还用于根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。
一种可能的设计中,所述处理模块还用于:
按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。
一种可能的设计中,当所述多个任务包括至少两个任务链时,所述处理模块用于:
根据各个任务的执行时长的历史记录及所述资源状态信息,先于串行任务执行任务链中的任务,串行任务的优先级低于任务链的优先级。
在一些可能的设计中,当所述多个任务包括至少两个任务链时,所述处理模块用于:
若根据所述资源状态信息确定所述服务器当前的资源不足,则根据各个任务的执行时长的历史记录及所述资源状态信息,先于包含一个未执行任务的任务链执行包含两个以上未执行任务的任务链。
在一些可能的设计中,所述处理模块用于:
设置所述多个线程的任务最大数量、任务最小数量和线程的最长空闲时间;所述多个线程包括调度线程;
启动所述多个线程执行任务,当存在当前执行的任务量趋近于所述任务最大数量的线程,或存在当前执行的任务量趋于所述任务最小数量的线程,或存在空闲的线程时,调用所述调度线程根据当前执行的任务量和带执行的任务量动态调整各线程的任务数量;
执行所述任务链中的一个任务后,顺序执行所述任务链中的顺序排列的下一个任务。
在一些可能的设计中,每个所述串行任务、以及每个所述任务链的起始执行时间相同。
本申请又一方面提供了一种服务器,其包括至少一个连接的处理模块、存储器和收发器,其中,所述存储器用于存储程序代码,所述处理模块用于调用所述存储器中的程序代码来执行上述各方面所述的方法。
本申请又一方面提供了一种计算机存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
与现有机制相比,本申请中,根据采集的资源状态信息确定所述服务器当前的资源充足时启动多个线程,调用多个线程并发执行多个任务。由于这多个任务相互之间不存在依赖关系,通过并行没有依赖关系的任务,实现从局部缩短没有依赖关系的任务之间的处理时间,故能够提升任务的执行效率。此外,根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。通过实时调度,能够提升任务的执行效率以及减少任务未执行完带来的业务影响。
附图说明
图1为本申请实施例中基于大数据行为调度应用任务的方法的一种流程示意图;
图2为本申请实施例中任务队列的一种示意图;
图3为本申请实施例中任务执行时间的一种示意图;
图4为本申请实施例中任务队列的另一种示意图;
图5为本申请实施例中任务执行时间的另一种示意图;
图6为本申请实施例中服务器的一种结构示意图;
图7为本申请实施例中服务器的另一种结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行。
本申请提供一种基于大数据行为调度应用任务的方法、服务器及存储介质,可用于任务调度,能够解决现有机制中各流程节点之间存在严重依赖前后流程节点的串行关系所存在的业务流程执行时间较长的问题。
现有机制中在针对具有串行依赖关系的多个任务是无法并行的,显然现有机制是所有任务为串行执行的。为解决上述技术问题,本申请主要提供以下技术方案:
将一连串的串行任务分割为至少一个串行任务和至少一个并行的任务链,每一条任务链都可以看作“一段具有依赖关系的多个任务”。从局部来看,各无依赖性的串行任务、至少一条任务链之间并行执行,每条任务链之间不存在依赖关系,即没有依赖的任务可以并行执行,充分利用服务器资源。通过并行没有依赖关系的任务,实现从局部缩短没有依赖关系的任务之间的处理时间,能够提升任务的执行效率,减少任务未执行完带来的业务影响。
参照图1,以下对本申请提供一种基于大数据行为调度应用任务的方法进行举例说明,所述方法由服务器执行所述服务器部署多个任务,所述方法包括:
101、采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率。
一些实施方式中,可以以固定或动态调整的频率(例如5s)去采集服务器当前的资源状态信息,在不影响服务器的性能的同时,还能保证当前依据的各类使用情况不会影响到服务器当前并发执行任务的和鲁棒性和时效性。
一些实施方式中,采集这些使用情况,可以通过挂钩(hook)机制监听处理器、内存和存储器的使用率。其中,hook是Windows消息处理机制的一个很重要的内容,应用程序可以通过hook机制截获处理Window消息或是其他一些特定事件。当事件发生时,应用程序可以在相应的hook上设置多个hook子程序(多个hook子程可对任务执行状态进行监控),由其组成一个与hook相关联的指向hook函数的指针列表(例如hook链表,该hook链表表示任务队列,确定该任务队列能够确定任务的执行顺序)。当hook所监视的消息出现时,系统将该监听到的消息送到调用链表中所指向的第一个hook函数中(例如任务队列中的第一个任务),钩子函数将根据其各自的功能对消息进行监视、修改和控制,并在处理完成后把消息传递给下一个hook函数直至到达hook链表的末尾。在hook函数交出控制权后,被拦截的消息最终仍将交还给窗口处理函数。
102、若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务。
其中,所述多个任务相互之间不存在依赖关系。
一些实施方式中,所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系。
例如,依赖关系可包括上游依赖关系和下游依赖关系,任务之间的依赖关系可渲染到任务树表示,任务树能够表示所有任务之间的局部关系、全局关系和任务节点的节点状态。其中,节点状态包括:正在运行、运行成功、运行失败,本申请不对任务节点和节点作区分,节点即表示任务。可见,通过任务树的方式能够便于统一管理或查看所部署的任务。举例来说,在任务树中,以任务节点6为起点,分别向所述任务节点6的上游和下游递归搜索,搜索任务节点6的上游依赖节点和下游依赖节点。任务节点6的上游依赖为:任务节点6依赖任务节点3和任务节点4,任务节点3依赖任务节点0。任务节点6的下游依赖为:任务节点6依赖任务节点8和任务节点9,任务节点8依赖任务节点12。
103、根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。
一些实施方式中,本申请中的遍历是指遍历一个完整的任务流程中的每个任务,直至所有任务执行完,只需要执行一遍完整的任务流程即可,无需循环。
本申请实施例中,根据采集的资源状态信息确定所述服务器当前的资源充足时启动多个线程,调用多个线程并发执行多个任务。由于这多个任务相互之间不存在依赖关系,通过并行没有依赖关系的任务,实现从局部缩短没有依赖关系的任务之间的处理时间,故能够提升任务的执行效率。此外,根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。通过实时调度,能够提升任务的执行效率以及减少任务未执行完带来的业务影响。
可选的,在本申请的一些实施例中,所述方法还包括:
按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。
可选的,在本申请的一些实施例中,所述多个任务由任务树的方式存储,所述任务树包括多个节点;当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,包括:
对所述任务树中各节点的执行状态进行监控,采用异步方式判断所述任务树中各节点的执行状态;
当正在执行的任务中的第一任务完成后,为所述第一任务设置标识符,对应更新所述第一任务在任务树中的节点状态;
根据各个任务的执行时长的历史记录及所述资源状态信息,先于串行任务执行任务链中的任务,串行任务的优先级低于任务链的优先级。
举例来说,如图2所示的一种任务队列示意图,任务队列包括任务1、任务2、…任务20。其中,任务1、任务2和任务3组成任务链1,任务6、任务7…任务12组成任务链2。基于图2所示的任务队列,启动线程后,在t1时刻并发执行图2所示的任务队列中的任务(如图3所示)。其中,并发执行的多个相互之间没有依赖关系的任务队列中包括任务1和任务4,该任务1与任务队列中的其它任务(即任务链1中的任务2和任务3)之间存在依赖关系,任务4的执行不会对其他任务(即途2所示的任务队列中除任务4之外的任务)带来触发,也与其它任务没有依赖关系,所以任务1这类的优先级是要高于任务4这类的。因此,并发执行任务队列中的任务时,会先执行任务1这类的任务。
一些实施方式中,还可以采用哈希(hash)表的方式来处理任务,所述对应更新所述第一任务在任务树中的节点状态,包括:
调用处理任务的程判断所述第一任务的下一跳任务字段是否为空,若不为空,则使用所述下一跳任务的任务名称替换当前任务名称,更新所述第一任务在任务树中的节点的标识符为has_next,并将任务对象插入所述下一跳任务对应的任务队列;若所述下一跳任务字段为空,则将所述第一任务在任务树中的节点的标识符更新为done。
可选的,在本申请的一些实施例中,当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的顺序,包括:
若根据所述资源状态信息确定所述服务器当前的资源不足,则根据各个任务的执行时长的历史记录及所述资源状态信息,先于包含一个未执行任务的任务链执行包含两个以上未执行任务的任务链。
举例来说,并发执行这些相互无依赖关系的任务时,针对任务队列的每个任务可以看作一段任务链,其中,每条任务链可以是有依赖关系的多个任务。也就是说,每条任务链的起始执行时间都是相同的,那本发明的“优先执行有依赖的任务”又是指优先执行具有多个任务的任务链,如果cpu资源足够,那么可以同时执行一个任务的任务链,即在执行“具有多个任务的任务链”的同时,可以并行执行“仅具有一个任务的任务链”。如果cpu资源不足,则优先执行有依赖关系的任务链。
如图4和图5所示,待图2和图3所示的任务启动一段时间后,到达图4所示的t2时刻的任务队列。此时检测到任务链1中只存在一个未执行的任务,且当前服务器的资源不足,那么,为了合理的使用服务器的资源,可以将除任务链2之外的其他任务全部延迟或者暂停,或者将任务链1总的任务3的执行时间延迟到t3。如果当前服务器的资源充足,那么,在执行任务链2中剩余的任务的同时,还可以并行执行任务链2之外的其他任务。
可选的,在本申请的一些实施例中,所述调用所述多个线程并发执行多个任务之前,所述方法还包括:
设置所述多个线程的任务最大数量、任务最小数量和线程的最长空闲时间;所述多个线程包括调度线程;
相应的,所述调用所述多个线程并发执行多个任务,包括:
启动所述多个线程执行任务,当存在当前执行的任务量趋近于所述任务最大数量的线程,或存在当前执行的任务量趋于所述任务最小数量的线程,或存在空闲的线程时,调用所述调度线程根据当前执行的任务量和带执行的任务量动态调整各线程的任务数量;
执行所述任务链中的一个任务后,顺序执行所述任务链中的顺序排列的下一个任务。
举例来说,并发执行的多个相互之间没有依赖关系的任务队列中包括任务1、任务2和任务3,任务1、任务2和任务3三者属于同一个任务链且相互之间存在依赖关系,任务2的执行会对触发任务3。所以,当任务2的优先级是要高于任务3。因此,并发执行任务队列中的任务时,会依次执行任务1、任务2和任务3。
可选的,在本申请的一些实施例中,每个所述串行任务、以及每个所述任务链的起始执行时间相同。
上述实施例中所提及的各项技术特征也同样适用于本申请中的图6和图7所对应的实施例,后续类似之处不再赘述。
以上对本申请中一种基于大数据行为调度应用任务的方法进行说明,以下对执行上述基于大数据行为调度应用任务的方法的服务器进行描述。
如图6所示的一种服务器的结构示意图,本申请实施例中的服务器能够实现对应于上述图1所对应的实施例中所执行的基于大数据行为调度应用任务的方法的步骤。服务器实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述服务器可包括获取模块和处理模块,所述处理模块和获取模块的功能实现可参考图1所对应的实施例中所执行的操作,此处不作赘述。处理模块可用于控制所述获取模块的收发操作。所述服务器部署多个任务,所述服务器具有实现对应于上述图1-图5所对应的实施例中提供的基于大数据行为调度应用任务的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一些实施方式中,所述获取模块可用于采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率。
所述处理模块可用于若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系。
所述处理模块还用于根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。
本申请实施例中,所述处理模块根据所述获取模块采集的资源状态信息确定所述服务器当前的资源充足时启动多个线程,调用多个线程并发执行多个任务。由于这多个任务相互之间不存在依赖关系,通过并行没有依赖关系的任务,实现从局部缩短没有依赖关系的任务之间的处理时间,故能够提升任务的执行效率。此外,根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。通过实时调度,能够提升任务的执行效率以及减少任务未执行完带来的业务影响。
可选的,在本申请的一些实施例中,所述处理模块还用于:
按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。
可选的,在本申请的一些实施例中,当所述多个任务包括至少两个任务链时,所述处理模块用于:
根据各个任务的执行时长的历史记录及所述资源状态信息,先于串行任务执行任务链中的任务,串行任务的优先级低于任务链的优先级。
可选的,在本申请的一些实施例中,当所述多个任务包括至少两个任务链时,所述处理模块用于:
若根据所述资源状态信息确定所述服务器当前的资源不足,则根据各个任务的执行时长的历史记录及所述资源状态信息,先于包含一个未执行任务的任务链执行包含两个以上未执行任务的任务链。
可选的,在本申请的一些实施例中,所述处理模块用于:
设置所述多个线程的任务最大数量、任务最小数量和线程的最长空闲时间;所述多个线程包括调度线程;
启动所述多个线程执行任务,当存在当前执行的任务量趋近于所述任务最大数量的线程,或存在当前执行的任务量趋于所述任务最小数量的线程,或存在空闲的线程时,调用所述调度线程根据当前执行的任务量和带执行的任务量动态调整各线程的任务数量;
执行所述任务链中的一个任务后,顺序执行所述任务链中的顺序排列的下一个任务。
可选的,在本申请的一些实施例中,每个所述串行任务、以及每个所述任务链的起始执行时间相同。
上面从模块化功能实体的角度分别介绍了本申请实施例中的服务器,以下从硬件角度介绍一种服务器,如图7所示,其包括:处理器、存储器、收发器(也可以是输入输出单元,图7中未标识出)以及存储在所述存储器中并可在所述处理器上运行的计算机程序。例如,该计算机程序可以为图1所对应的实施例中基于大数据行为调度应用任务的方法对应的程序。例如,当服务器实现如图6所示的服务器的功能时,所述处理器执行所述计算机程序时,能够实现上述图6所对应的实施例中由服务器执行的基于大数据行为调度应用任务的方法中的各步骤;或者,所述处理器执行所述计算机程序时实现上述图6所对应的实施例的服务器中处理模块的功能。又例如,该计算机程序可以为图1所对应的实施例中基于大数据行为调度应用任务的方法对应的程序。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本申请的保护之内。
Claims (10)
1.一种基于大数据行为调度应用任务的方法,所述方法由服务器执行,所述服务器部署多个任务,其特征在于,所述方法包括:
采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率;
若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;
根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。
3.根据权利要求2所述的方法,其特征在于,所述多个任务由任务树的方式存储,所述任务树包括多个节点;当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,包括:
对所述任务树中各节点的执行状态进行监控,采用异步方式判断所述任务树中各节点的执行状态;
当正在执行的任务中的第一任务完成后,为所述第一任务设置标识符,对应更新所述第一任务在任务树中的节点状态;
根据各个任务的执行时长的历史记录及所述资源状态信息,先于串行任务执行任务链中的任务,串行任务的优先级低于任务链的优先级。
4.根据权利要求2所述的方法,其特征在于,当所述多个任务包括至少两个任务链时,所述根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的顺序,包括:
若根据所述资源状态信息确定所述服务器当前的资源不足,则根据各个任务的执行时长的历史记录及所述资源状态信息,先于包含一个未执行任务的任务链执行包含两个以上未执行任务的任务链。
5.根据权利要求2-4中任一项所述的方法,其特征在于,所述调用所述多个线程并发执行多个任务之前,所述方法还包括:
设置所述多个线程的任务最大数量、任务最小数量和线程的最长空闲时间;所述多个线程包括调度线程;
所述调用所述多个线程并发执行多个任务,包括:
启动所述多个线程执行任务,当存在当前执行的任务量趋近于所述任务最大数量的线程,或存在当前执行的任务量趋于所述任务最小数量的线程,或存在空闲的线程时,调用所述调度线程根据当前执行的任务量和带执行的任务量动态调整各线程的任务数量;
执行所述任务链中的一个任务后,顺序执行所述任务链中的顺序排列的下一个任务。
6.根据权利要求2-4中任一项所述的方法,其特征在于,每个所述串行任务、以及每个所述任务链的起始执行时间相同。
7.一种服务器,所述服务器部署多个任务,其特征在于,所述服务器包括:
获取模块,用于采集服务器当前的资源状态信息,所述资源状态信息包括处理器、内存和存储器的使用率;
处理模块,用于若根据所述资源状态信息确定所述服务器当前的资源充足,则启动多个线程,调用所述多个线程并发执行多个任务,所述多个任务相互之间不存在依赖关系;所述依赖关系至少包括以下项之一:任务的执行顺序存在先后顺序、同时并行触发的依赖关系、以及一个任务的执行依赖在先任务已执行完成的关系;
所述处理模块还用于根据各个任务的执行时长的历史记录及所述资源状态信息,实时调度没有依赖关系的任务之间的执行顺序,遍历所述多个任务中的所有任务直至所有任务执行完毕。
8.根据权利要求7所述的服务器,其特征在于,所述处理模块还用于:
按照依赖关系将所述多个任务分割为至少一个串行任务和至少一个任务链,所述串行任务是指与所述多个任务中的任一任务之间不存在依赖关系的任务,每个所述任务链是指一段具有依赖关系的多个任务,串行任务与任务链之间不存在依赖关系。
9.一种服务器,其特征在于,所述服务器包括:
至少一个处理模块、存储器和收发器;
其中,所述存储器用于存储程序代码,所述处理模块用于调用所述存储器中存储的程序代码来执行如权利要求1-6中任一项所述的方法。
10.一种计算机存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910070469.5A CN109901926A (zh) | 2019-01-25 | 2019-01-25 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
PCT/CN2019/092669 WO2020151177A1 (zh) | 2019-01-25 | 2019-06-25 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910070469.5A CN109901926A (zh) | 2019-01-25 | 2019-01-25 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109901926A true CN109901926A (zh) | 2019-06-18 |
Family
ID=66944222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910070469.5A Pending CN109901926A (zh) | 2019-01-25 | 2019-01-25 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109901926A (zh) |
WO (1) | WO2020151177A1 (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569118A (zh) * | 2019-08-29 | 2019-12-13 | 贝壳技术有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN110673939A (zh) * | 2019-09-23 | 2020-01-10 | 汉纳森(厦门)数据股份有限公司 | 一种基于airflow和yarn的任务调度方法、装置及介质 |
CN110704170A (zh) * | 2019-09-09 | 2020-01-17 | 深圳壹账通智能科技有限公司 | 批量任务处理方法、装置、计算机设备和存储介质 |
CN110716943A (zh) * | 2019-09-06 | 2020-01-21 | 中国平安财产保险股份有限公司 | 缺失数据补录方法、装置、计算机设备及存储介质 |
CN110825391A (zh) * | 2019-10-31 | 2020-02-21 | 北京金山云网络技术有限公司 | 服务管理方法、装置、电子设备及存储介质 |
CN111190725A (zh) * | 2019-08-09 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、存储介质及服务器 |
CN111258740A (zh) * | 2020-02-03 | 2020-06-09 | 北京无限光场科技有限公司 | 一种用于启动应用程序的方法、装置和电子设备 |
WO2020151177A1 (zh) * | 2019-01-25 | 2020-07-30 | 平安科技(深圳)有限公司 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
CN111857995A (zh) * | 2020-06-30 | 2020-10-30 | 海尔优家智能科技(北京)有限公司 | 进程调度方法和装置、存储介质及电子装置 |
CN111866013A (zh) * | 2020-07-29 | 2020-10-30 | 杭州安恒信息技术股份有限公司 | 一种云安全产品管理平台部署方法、装置、设备及介质 |
CN111966477A (zh) * | 2020-08-18 | 2020-11-20 | 浙江知水信息技术有限公司 | 一种在多个服务器环境下预警任务分配的方法 |
WO2021013055A1 (zh) * | 2019-07-20 | 2021-01-28 | 华为技术有限公司 | 数据处理的方法、装置及电子设备 |
CN112463397A (zh) * | 2020-12-10 | 2021-03-09 | 中国科学院深圳先进技术研究院 | lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 |
CN112748993A (zh) * | 2019-10-31 | 2021-05-04 | 北京国双科技有限公司 | 任务执行方法、装置、存储介质及电子设备 |
CN112748961A (zh) * | 2019-10-30 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 启动任务的执行方法和装置 |
CN112783622A (zh) * | 2021-01-13 | 2021-05-11 | 上海百胜软件股份有限公司 | 一种基于jira系统的任务管理方法、系统、设备和存储介质 |
CN112783634A (zh) * | 2019-11-06 | 2021-05-11 | 长鑫存储技术有限公司 | 任务处理系统、方法及计算机可读存储介质 |
CN112988362A (zh) * | 2021-05-14 | 2021-06-18 | 南京蓝洋智能科技有限公司 | 一种任务处理方法、装置、电子设备及存储介质 |
CN113031870A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种集群系统动态管理方法、装置、存储介质及设备 |
CN113694536A (zh) * | 2021-09-07 | 2021-11-26 | 北京蔚领时代科技有限公司 | 一种面向云游戏的场景管理方法、装置、设备及介质 |
CN113760529A (zh) * | 2021-01-15 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 接口执行方法、装置、设备和可读存储介质 |
CN113885956A (zh) * | 2021-09-29 | 2022-01-04 | 北京百度网讯科技有限公司 | 服务部署方法及装置、电子设备和存储介质 |
CN114116068A (zh) * | 2021-12-02 | 2022-03-01 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
US11573823B2 (en) * | 2019-11-18 | 2023-02-07 | International Business Machines Corporation | Parallel execution of applications |
WO2024007546A1 (zh) * | 2022-07-08 | 2024-01-11 | 中国电信股份有限公司 | 云资源池的服务控制方法、控制器及服务系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112235396B (zh) * | 2020-10-13 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 内容处理链路调整方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467532A (zh) * | 2010-11-12 | 2012-05-23 | 中国移动通信集团山东有限公司 | 一种任务处理方法以及任务处理装置 |
US20150067688A1 (en) * | 2013-08-30 | 2015-03-05 | Fujitsu Limited | Method and apparatus for controlling job schedule |
CN105589748A (zh) * | 2014-10-22 | 2016-05-18 | 阿里巴巴集团控股有限公司 | 一种业务请求处理方法及装置 |
CN106325984A (zh) * | 2015-06-30 | 2017-01-11 | 上海证大喜马拉雅网络科技有限公司 | 一种大数据任务调度装置 |
CN108733464A (zh) * | 2017-04-18 | 2018-11-02 | 华为软件技术有限公司 | 一种确定计算任务的调度方案的方法及装置 |
CN108920261A (zh) * | 2018-05-23 | 2018-11-30 | 中国航天系统科学与工程研究院 | 一种适于大规模并行数据处理任务的两级自适应调度方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990820B2 (en) * | 2008-12-19 | 2015-03-24 | Microsoft Corporation | Runtime task with inherited dependencies for batch processing |
US10795722B2 (en) * | 2011-11-09 | 2020-10-06 | Nvidia Corporation | Compute task state encapsulation |
CN108804240B (zh) * | 2018-04-25 | 2021-11-19 | 天津卓盛云科技有限公司 | 一种队列数据的分发和处理算法 |
CN109901926A (zh) * | 2019-01-25 | 2019-06-18 | 平安科技(深圳)有限公司 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
-
2019
- 2019-01-25 CN CN201910070469.5A patent/CN109901926A/zh active Pending
- 2019-06-25 WO PCT/CN2019/092669 patent/WO2020151177A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467532A (zh) * | 2010-11-12 | 2012-05-23 | 中国移动通信集团山东有限公司 | 一种任务处理方法以及任务处理装置 |
US20150067688A1 (en) * | 2013-08-30 | 2015-03-05 | Fujitsu Limited | Method and apparatus for controlling job schedule |
CN105589748A (zh) * | 2014-10-22 | 2016-05-18 | 阿里巴巴集团控股有限公司 | 一种业务请求处理方法及装置 |
CN106325984A (zh) * | 2015-06-30 | 2017-01-11 | 上海证大喜马拉雅网络科技有限公司 | 一种大数据任务调度装置 |
CN108733464A (zh) * | 2017-04-18 | 2018-11-02 | 华为软件技术有限公司 | 一种确定计算任务的调度方案的方法及装置 |
CN108920261A (zh) * | 2018-05-23 | 2018-11-30 | 中国航天系统科学与工程研究院 | 一种适于大规模并行数据处理任务的两级自适应调度方法 |
Non-Patent Citations (1)
Title |
---|
洪俊望: "面向大数据存储系统的分布式复杂任务树调度器的研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑(月刊)》 * |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020151177A1 (zh) * | 2019-01-25 | 2020-07-30 | 平安科技(深圳)有限公司 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
WO2021013055A1 (zh) * | 2019-07-20 | 2021-01-28 | 华为技术有限公司 | 数据处理的方法、装置及电子设备 |
CN111190725A (zh) * | 2019-08-09 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、存储介质及服务器 |
CN110569118A (zh) * | 2019-08-29 | 2019-12-13 | 贝壳技术有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN110716943A (zh) * | 2019-09-06 | 2020-01-21 | 中国平安财产保险股份有限公司 | 缺失数据补录方法、装置、计算机设备及存储介质 |
CN110716943B (zh) * | 2019-09-06 | 2023-10-27 | 中国平安财产保险股份有限公司 | 缺失数据补录方法、装置、计算机设备及存储介质 |
CN110704170A (zh) * | 2019-09-09 | 2020-01-17 | 深圳壹账通智能科技有限公司 | 批量任务处理方法、装置、计算机设备和存储介质 |
CN110673939B (zh) * | 2019-09-23 | 2021-12-28 | 汉纳森(厦门)数据股份有限公司 | 一种基于airflow和yarn的任务调度方法、装置及介质 |
CN110673939A (zh) * | 2019-09-23 | 2020-01-10 | 汉纳森(厦门)数据股份有限公司 | 一种基于airflow和yarn的任务调度方法、装置及介质 |
CN112748961A (zh) * | 2019-10-30 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 启动任务的执行方法和装置 |
CN110825391A (zh) * | 2019-10-31 | 2020-02-21 | 北京金山云网络技术有限公司 | 服务管理方法、装置、电子设备及存储介质 |
CN112748993A (zh) * | 2019-10-31 | 2021-05-04 | 北京国双科技有限公司 | 任务执行方法、装置、存储介质及电子设备 |
CN110825391B (zh) * | 2019-10-31 | 2023-10-13 | 北京金山云网络技术有限公司 | 服务管理方法、装置、电子设备及存储介质 |
CN112783634B (zh) * | 2019-11-06 | 2022-04-26 | 长鑫存储技术有限公司 | 任务处理系统、方法及计算机可读存储介质 |
CN112783634A (zh) * | 2019-11-06 | 2021-05-11 | 长鑫存储技术有限公司 | 任务处理系统、方法及计算机可读存储介质 |
US11573823B2 (en) * | 2019-11-18 | 2023-02-07 | International Business Machines Corporation | Parallel execution of applications |
CN111258740A (zh) * | 2020-02-03 | 2020-06-09 | 北京无限光场科技有限公司 | 一种用于启动应用程序的方法、装置和电子设备 |
CN111857995A (zh) * | 2020-06-30 | 2020-10-30 | 海尔优家智能科技(北京)有限公司 | 进程调度方法和装置、存储介质及电子装置 |
CN111866013A (zh) * | 2020-07-29 | 2020-10-30 | 杭州安恒信息技术股份有限公司 | 一种云安全产品管理平台部署方法、装置、设备及介质 |
CN111966477A (zh) * | 2020-08-18 | 2020-11-20 | 浙江知水信息技术有限公司 | 一种在多个服务器环境下预警任务分配的方法 |
CN112463397A (zh) * | 2020-12-10 | 2021-03-09 | 中国科学院深圳先进技术研究院 | lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 |
WO2022120984A1 (zh) * | 2020-12-10 | 2022-06-16 | 中国科学院深圳先进技术研究院 | Lock-free的分布式死锁避免方法及装置、计算机设备及可读存储介质 |
CN112783622A (zh) * | 2021-01-13 | 2021-05-11 | 上海百胜软件股份有限公司 | 一种基于jira系统的任务管理方法、系统、设备和存储介质 |
CN113760529A (zh) * | 2021-01-15 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 接口执行方法、装置、设备和可读存储介质 |
CN113031870A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种集群系统动态管理方法、装置、存储介质及设备 |
CN112988362A (zh) * | 2021-05-14 | 2021-06-18 | 南京蓝洋智能科技有限公司 | 一种任务处理方法、装置、电子设备及存储介质 |
CN113694536A (zh) * | 2021-09-07 | 2021-11-26 | 北京蔚领时代科技有限公司 | 一种面向云游戏的场景管理方法、装置、设备及介质 |
CN113885956A (zh) * | 2021-09-29 | 2022-01-04 | 北京百度网讯科技有限公司 | 服务部署方法及装置、电子设备和存储介质 |
CN113885956B (zh) * | 2021-09-29 | 2023-08-29 | 北京百度网讯科技有限公司 | 服务部署方法及装置、电子设备和存储介质 |
CN114116068A (zh) * | 2021-12-02 | 2022-03-01 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
CN114116068B (zh) * | 2021-12-02 | 2023-06-02 | 重庆紫光华山智安科技有限公司 | 服务启动优化方法、装置、电子设备和可读存储介质 |
WO2024007546A1 (zh) * | 2022-07-08 | 2024-01-11 | 中国电信股份有限公司 | 云资源池的服务控制方法、控制器及服务系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2020151177A1 (zh) | 2020-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109901926A (zh) | 基于大数据行为调度应用任务的方法、服务器及存储介质 | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN106293950B (zh) | 一种面向集群系统的资源优化管理方法 | |
Chetto et al. | Dynamic scheduling of real-time tasks under precedence constraints | |
Ramos-Thuel et al. | On-line scheduling of hard deadline aperiodic tasks in fixed-priority systems | |
CN110489217A (zh) | 一种任务调度方法及系统 | |
CN103473122B (zh) | 一种云计算环境中的工作流系统资源调度方法 | |
CN110113387A (zh) | 一种基于分布式批量处理系统的处理方法、装置及系统 | |
CN102592198B (zh) | 一种支持组合业务的工作流引擎 | |
CN101237469B (zh) | 运用蚁群算法优化多QoS网格工作流的方法 | |
CN110018893A (zh) | 一种基于数据处理的任务调度方法及相关设备 | |
CN109408215A (zh) | 一种计算节点的任务调度方法和装置 | |
CN112685153A (zh) | 微服务调度方法、装置以及电子设备 | |
CN109871273A (zh) | 一种自适应任务迁移方法及装置 | |
US7827282B2 (en) | System and method for processing hardware or service usage data | |
CN103458527B (zh) | 前导检测任务处理调度方法及装置 | |
CN102929929A (zh) | 一种数据汇总方法和装置 | |
CN106802825B (zh) | 一种基于实时系统的动态任务调度方法与系统 | |
CN110287006A (zh) | 一种数据调度方法及系统 | |
CN114924858A (zh) | 任务调度方法及装置、存储介质及电子设备 | |
CN110275765A (zh) | 基于分支dag依赖的数据并行作业调度方法 | |
CN110134506A (zh) | 基于处理器内核动态的实时动态关键路径多核调度方法 | |
CN106603215A (zh) | 一种基于ZigBee非公平网络信道资源共享方法 | |
CN106487889B (zh) | 一种面向云数据中心的任务与数据联合部署方法 | |
CN109446641B (zh) | 一种云计算服务系统的多阶段可靠性建模分析方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190618 |