CN112162839A - 任务调度方法、装置、计算机设备和存储介质 - Google Patents

任务调度方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112162839A
CN112162839A CN202011027115.1A CN202011027115A CN112162839A CN 112162839 A CN112162839 A CN 112162839A CN 202011027115 A CN202011027115 A CN 202011027115A CN 112162839 A CN112162839 A CN 112162839A
Authority
CN
China
Prior art keywords
task
tasks
grouping
execution
scheduled
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
Application number
CN202011027115.1A
Other languages
English (en)
Inventor
张德银
刘丰
吴朝文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taiping Finance Technology Services Shanghai Co ltd
Original Assignee
Taiping Finance Technology Services Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Taiping Finance Technology Services Shanghai Co ltd filed Critical Taiping Finance Technology Services Shanghai Co ltd
Priority to CN202011027115.1A priority Critical patent/CN112162839A/zh
Publication of CN112162839A publication Critical patent/CN112162839A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种任务调度方法、装置、计算机设备和存储介质。方法包括:接收待调度任务调度请求,待调度任务调度请求中携带有待调度任务标识;获取待调度任务标识对应的待调度任务;其中,待调度任务中包括多于一个的单片任务;并且每一个所述单片任务对应的任务类型相同计算各执行机对应的处理性能指标;根据各处理性能指标确定分组比例,并根据分组比例将待调度任务进行分组处理得到多个分组任务;根据各执行机中的各单片任务对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机处理根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行分配到的分组任务。通过该方法能够提高任务执行的效率。

Description

任务调度方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种任务调度方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的快速发展,各行业的数据需求量不断增大,随之而产生的大量任务需要处理。例如任务数据可以通过任务调度的形式定时、批量、有效地进行处理,如目前常用的Quartz任务调度,Quartz是一个完全由Java编写的开源作业调度架构,待调度任务以作业的概念进行存储,调度机通过触发机来调用作业,Quartz支持丰富多样的调度,调度数据的多种存储方式,满足各种常规及特殊需求。
但是任务调度的过程中是在多节点下部署,通过竞争数据库锁来保证只有一个任务在执行,虽然解决了集群高可用的问题,但是同一个任务只能有一个节点运行,导致任务的执行效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高任务执行效率的任务调度方法、装置、计算机设备和存储介质。
一种任务调度方法,方法包括:接收待调度任务调度请求,待调度任务调度请求中携带有待调度任务标识;获取待调度任务标识对应的待调度任务;其中,待调度任务中包括多于一个的单片任务,并且每一个单片任务对应的任务类型相同;计算各执行机对应的处理性能指标;根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务;根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务。
在一个实施例中,计算各执行机对应的处理性能指标,包括:获取分配到各执行机中的待处理任务对应的待处理任务标识;获取各待处理任务标识对应的待处理任务,根据待处理任务计算得到当前资源负载率;根据各当前资源负载率得到各执行机对应的处理性能指标。
在一个实施例中,根据各当前资源负载率得到各执行机对应的处理性能指标,包括:根据各执行机的当前资源负载率以及预设资源负载率得到各执行机对应的处理性能指标;其中,预设资源负载率是各执行机负载最大任务量时对应的负载率;根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务,包括:根据处理性能指标从待调度任务中提取可分配待调度任务;根据处理性能指标确定分组比例,并根据分组比例将可分配待调度任务中的各单片任务进行分组处理得到多个分组任务。
在一个实施例中,方法还包括:根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务,包括:获取待调度任务对应的预设处理时间;根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,获取各执行机利用一个处理线程对分配到的分组任务进行处理对应的实际处理时间;根据预设处理时间以及实际处理时间确定各执行机中的处理线程的线程数量;在各执行机中根据对应线程数量的处理线程对分配到的分组任务并行处理。
在一个实施例中,获取各执行机对应的处理性能指标之后,还包括:当待调度任务对应为不可拆分的单任务时,将待调度任务分配至最大的处理性能指标对应的执行机中,以指示执行机处理分配到的任务;当待调度任务对应为可拆分的多任务时,继续根据处理性能指标将待调度任务进行分组处理得到多个分组任务。
在一个实施例中,根据处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务,包括:获取待调度任务对应的最小任务分组单元以及最小任务分组单元对应的分组单元数量;当执行机数量小于分组单元数量时,根据各执行机的处理性能指标对应的数值构建分组比例,根据最小任务分组单元以及分组比例对待调度任务进行分组处理,得到分组单元数量符合分组比例的多个分组任务;当执行机数量不小于分组单元数量时,将待调度任务划分为最小任务分组单元对应的分组任务,按照处理性能指标从高到低的顺序依次将分组任务分配至对应的执行机中。
在一个实施例中,方法还包括:实时监控各执行机的健康状态;当监控到执行机的健康状态为疑似故障时,向疑似故障的执行机发送任务重新执行指令,并获取任务的执行状态,当任务重新执行指令的发送次数等于预设值并且执行状态皆对应为执行失败时,判定疑似故障的执行机为故障执行机;获取健康状态的执行机对应的处理性能指标;根据健康状态的执行机对应的处理性能指标将故障执行机中的分组任务分配到各健康的执行机中。
一种任务调度装置,装置包括:请求接收模块,用于接收待调度任务调度请求,待调度任务调度请求中携带有待调度任务标识;待调度任务获取模块,用于获取待调度任务标识对应的待调度任务;其中,待调度任务中包括多于一个的单片任务;计算模块,用于计算各执行机对应的处理性能指标;分片模块,用于根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务;执行模块,用于根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
上述任务调度方法、装置、计算机设备和存储介质,接收待调度任务调度请求,待调度任务调度请求中携带有待调度标识;获取待调度标识对应的待调度任务;其中,待调度任务中包括多于一个的单片任务;计算并获取各执行机对应的处理性能指标;以根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务,保证了得到的分组任务符合执行机的处理性能,然后根据各执行机对应的处理性能指标将各分组任务分配至执行机中进行任务执行,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务。由于根据执行机的处理性能对任务进行分组处理,使得执行机的处理性能能够满足执行分配到的分组任务,进而实现了向执行机中合理分配任务资源以及提高了对待调度任务的调度效率。更进一步地,为了进一步提高任务调度效率还包括在执行机种根据分配到的分组任务确定线程数量,以根据多个计算线程并行处理分组任务,极大地提高了任务调度效率。
本申请中考虑到了问题的本质,提出了一种从本质上解决问题的技术方案,在对待调度任务进行分组处理时就考虑到了各执行机的计算性能指标,故而得到的分组任务一定是能与各执行机的计算性能指标完全匹配的,彻底解决了传统技术中存在的为执行机分配与其处理性能不匹配的任务量,造成执行机宕机的问题。
附图说明
图1为一个实施例中任务调度方法的应用环境图;
图2为一个实施例中任务调度方法的流程示意图;
图3为一个实施例中提供的一种将待调度任务分配至对应执行机中的流程示意图;
图4为一个实施例中任务调度装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的任务调度方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与调度中心104进行通信。调度中心104接收终端102发送的待调度任务调度请求,待调度任务调度请求中携带有待调度任务标识;调度中心104获取待调度任务标识对应的待调度任务;计算各执行机对应的处理性能指标;根据处理性能指标将待调度任务进行分片处理得到多个分片任务;根据各执行机对应的处理性能指标将各分片任务分配至对应的执行机中,以指示执行机处理分配到的分片任务。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,调度中心104可以用独立的服务机或者是多个服务机组成的服务机集群来实现。
在一个实施例中,如图2所示,提供了一种任务调度方法,以该方法应用于图1中的调度中心104为例进行说明,包括以下步骤:
步骤210,接收待调度任务调度请求,待调度任务调度请求中携带有待调度任务标识。
待调度任务调度请求是对待调度任务的请求,待调度任务标识可用于唯一标识一个待调度任务。具体地,调度中心可以通过定时任务接收关于待调度任务的请求,并从调度中心提取请求中提取携带的待调度任务标识,以根据待调度任务标识获取对应的待调度任务。其中定时任务可以是指在固定时间执行的任务,固定时间可以是预先设定的时间,如可以是一天中的某个时刻或者某个时间段,当达到该固定时间时,调度中心自动执行关于待调度任务的调度工作。
步骤220,获取待调度任务标识对应的待调度任务;其中,待调度任务中包括多于一个的单片任务,并且每一个单片任务对应的任务类型相同。
调度中心根据获取到的待调度任务标识从对应的业务系统获取对应的待调度任务。其中,待调度任务中包括多于一个的单片任务,并且每个单片任务的任务类型相同,以及每个单片任务的任务量相同或者基本相同,且至少一个单片任务组成任务分片。在一个实施例中,计算机处理每个单片任务的任务时耗基本是相同的,如待调度任务可以是对1000份保单信息进行业务处理的任务等,其中一个单片任务对应为一份保单信息,执行机处理一份保单信息的耗时基本是相同的。
步骤230,计算各执行机对应的处理性能指标。
具体地,调度中心可以是一个分布式的调度中心,在调度中心中包含多个可用于执行任务的执行机,并且每个执行机可独立处理不同的任务。处理性能指标是用于度量各执行机当前可执行任务的能力指标,并且各执行机的执行能力与处理性能指标成正比,具体地,执行机的处理性能指标越高表明执行机当前执行任务的能力越强。
步骤240,根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务。
具体地,当待调度任务的任务数据量较大或者待调度任务是可以切分的任务时,还可以对待调度任务进行分组处理得到多个分组任务,其中分组处理是指按照预设分组规则将待调度任务划分为多个分组任务对应的子任务。具体地,预设分组规则可以是根据各执行机的处理性能指标得到的,如可以根据各执行机对应的处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理,以得到多个分组任务。通过处理性能指标确定分组比例,可以将待调度任务划分为符合各执行机处理性能指标的多个分组任务,然后再将各分组任务分配至对应的处理性能指标的执行机,使得各执行机能够根据当前的处理性能指标处理分配到的分组任务。
具体地,当待调度任务的任务数量为10万个时,可以根据各执行机的处理性能指标将10万个待调度任务划分为任务量分别为1万、2万、3万以及4万的分组任务,即每个分组任务中包含多个数量的单片任务。具体地,调度中心可监控各执行机的任务负载率,根据任务负载率得到各执行机的处理性能指标,如可监控各执行机的内存使用情况、CPU占用情况以及IO情况,根据监控的这些数据得到各执行机的处理性能指标,然后再根据各执行机的处理性能指标对待调度任务进行分组处理得到多个分组任务。
调度中心可以根据待调度任务中某个字段的值进行分组处理得到多个分组任务对应的子任务,其中字段可以对应为各任务的任务编号。具体地,待调度任务中包含多个单片任务,并且每个单片任务对应一个任务编码,如当具有10万个任务时,可以获取各任务对应的任务编号,以各任务编号作为字段对10万个任务进行分组处理,得到多个分组任务,如将任务编号为1到2万的任务划分为分组任务1,将任务编号为2万至4万的任务划分为分组任务2,将任务编号为4万至9万的任务划分为分组任务3以及将任务编号为9万至10万的任务划分为分组任务4。
在本步骤中,待调度任务中包含多个单片任务,由于本申请中的待处理任务中的各单片任务的类型都是相同的,以及每个单片任务的处理耗时基本一致,故而在本步骤中可以直接根据处理性能指标确定分组比例,并根据分组比例将待调度任务中的单片任务划分为多个分组任务,以实现分组处理得到的各分组任务的任务大小符合各计算机的处理性能指标。进一步地,可以将符合各执行机处理性能指标的分组任务分配至对应性能的执行机中分别执行。也就是说本申请的分组原理是基于执行机性能本身,是一种考虑到任务执行全过程的分组处理原理,实现了为各个执行机分配对应处理性能的分组任务,实现了各执行机的负载均衡,不会出现执行机过载也不会出现各执行机之间的负载差距过大的情况发生。
步骤250,根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务。
具体地,调度中心包含多个执行机,并且执行机的IP在应用启动时会自动注册到调度中心,以使得调度中心可以统一调用执行机的IP向各执行机分配一个或多个任务,具体地,调度中心向执行机发送任务分配请求以向执行机分配分组任务,如任务分配请求可为HTTP请求。
具体地,分组任务是根据处理性能指标对待调度任务进行分组处理得到的,也就是说分组任务与处理性能指标是对应的,故而调度中心还可以根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机处理分配到的分组任务。在另一个实施例中,调度中心还可以根据轮询算法将各分组任务依次分配至各执行机中,或者调度中心也可以将各分组任务随机分配至执行机中。进一步地,当执行机接收到包含多个单片任务的分组任务时,还可以触发多个线程并行处理分组任务中的各单片任务,以提高对分组任务中各单片任务的处理效率。具体的,各执行机可以根据分配到自身中的分组任务的任务大小,确定对应数量的处理线程,以根据确定数量的处理线程并行处理分配到的分组任务。
在本步骤中,考虑到处理性能指标是度量执行机处理分组任务能力的指标,由于不同分组任务的任务大小不同、占用的执行机资源不同,故而为了保证执行机能够正好用于处理分配到的分组任务,还可以按照各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据当前的处理性能处理分配到的分组任务,提高各执行机对分组任务的处理效率。
在本实施例中,当接收到待调度任务时,通过计算各执行机的计算性能指标,并以各计算性能指标确定分组比例,以获得多个与计算性能指标匹配的分组任务,实现了分配至各执行机中的分组任务都是预先根据需要划分的,是一种从根源上解决技术问题的技术手段,不会出现由于不合理的任务分配导致执行机的宕机,或者也不会出现各执行机的负载不均等问题,极大地提高了任务调度的效率。更进一步地,为了进一步提高任务调度效率还包括在执行机种根据分配到的分组任务确定线程数量,以根据多个计算线程并行处理分组任务,极大地提高了任务调度效率。
具体的,本申请中根据各执行机的处理性能指标将待调度任务进行分组处理得到多个分组任务,保证了得到的分组任务符合执行机的处理性能,然后根据各执行机对应的处理性能指标将各分组任务分配至执行机中进行任务执行,由于根据执行机的处理性能对任务进行分组处理,使得执行机的处理性能能够满足执行分配到的分组任务,进而实现了向执行机中合理分配任务资源以及提高了对待调度任务的调度效率。
本申请中分配到各执行机的分组任务的大小就是与服务器的处理性能指标完全匹配适应的,故而本申请完全解决了将不符合执行机计算性能指标的分组任务分配至执行机中出现的执行机过载、宕机的弊端,也就说本申请其实也是一种负载均衡算法,巧妙地根据各执行机服务器的处理性能指标进行任务分处理,完全解决了分配至各执行机中的分组任务后会产生宕机的情况。
在一个实施例中,计算各执行机对应的处理性能指标,包括:获取分配到各执行机中的待处理任务对应的待处理任务标识;获取各待处理任务标识对应的待处理任务,根据待处理任务计算得到当前资源负载率;根据各当前资源负载率得到各执行机对应的处理性能指标。
具体地,调度中心中的监控单元用于监控各执行机的工作状态,如用于监控各执行机对应的任务执行状态,如任务执行状态可包含任务未执行、任务执行中以及任务已完成等多种状态。由于不同类型的任务对应的任务大小不同,故而不同任务占用的计算机资源是不同的,故而在一个实施例中监控单元还用于获取各执行机中的待处理任务对应的待处理任务标识,并根据各待处理任务标识获取对应的待处理任务,根据待处理任务计算得到各待处理任务对应的当前资源负载率,其中当前资源负载率的数值用于表征执行机当前的任务负载情况。一般情况下当前资源负载率越高对应为该执行机当前被占用的资源越多,也就是说该执行机当前的可执行能力越弱即处理性能指标越低,进而根据各当前资源负载率得到各执行机对应的处理性能指标。具体地,调度中心可以监控各执行机的内存使用情况、CPU占用情况以及IO情况得到各执行机的当前资源负载率,具体地,可以从各执行机的内存使用情况、CPU占用情况以及IO情况三者之中任取其中一个指标作为执行机的当前资源负载率,如从CPU、内存、IO三项指标中取指标数值最高的一项指标作为执行机的当前资源负载率,或者也可以综合考虑各执行机的内存使用情况、CPU占用情况以及IO情况得到各执行机的当前资源负载率,在此不做限定。然后根据当前资源负载率将各分组任务分配至执行机中,具体地,可以将较大的分组任务分配至剩余资源最多的执行机中执行。
在本实施例中,根据各执行机当前的任务执行情况计算该执行机当前的处理性能指标,进而可以根据性能指标对待处理任务进行分组处理得到符合各执行机处理性能指标的各分组任务,使得分配到各执行机的分组任务适应于执行机当前的处理性能指标,实现了对待处理任务的合理分配,提高了任务调度的效率。
在一个实施例中,根据各当前资源负载率得到各执行机对应的处理性能指标,包括:根据各执行机的当前资源负载率以及预设资源负载率得到各执行机对应的处理性能指标。其中,预设资源负载率是各执行机负载最大任务量时对应的负载率。
当前资源负载率是指各执行机在当前状态下的任务负载情况,预设资源负载率是指各执行机负载最大任务量时对应的负载率,具体地,可以计算各执行机的当前资源负载率与预设资源负载率之间的差值得到各执行机还可以承担的负载率,根据计算得到的还可承担的负载率得到执行机的处理性能指标。具体地,如在一个实施例中计算得到其中一个执行机的当前任务负载率为20%,预设资源负载率为80%,那么可计算该执行机还可承担的负载率为60%,也就是说该执行机当前的处理性能指标还可用于处理负载率60%的任务量。
在一个实施例中,根据处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务,包括:根据处理性能指标从待调度任务中提取可分配待调度任务;根据处理性能指标确定分组比例,并根据分组比例将可分配待调度任务中的各单片任务进行分组处理得到多个分组任务。
处理性能指标与可分配待调度任务一一对应,具体地,处理性能指标可用于表征执行机还能处理的任务量,其中可处理的任务量也就是还可以向执行机中分配的可分配待调度任务。并且可分配待调度任务小于或者等于待调度任务,当执行机的处理性能指标较大时说明执行机还可以接收更多的任务并对接收到的任务进行处理,此时可分配待调度任务可能与待调度任务大小相等或者两者差值较小;当执行机的处理性能指标较小时说明执行机的处理能力较弱,执行机接收任务的能力较弱,不能处理更多的任务,此时可分配待调度任务可能小于待调度任务并且两者差值较大。
在本实施例中,通过当前资源负载率以及预设资源负载率得到各执行机对应的处理性能指标,得到的处理性能指标可以实际表征各执行机的实际处理能力,并且还根据实际的处理性能指标从待调度任务中提取可分配待调度任务,对可分配待调度任务进行分组处理而不是对所有的待调度任务进行分组处理,保证了分配到各执行机中的分组任务不会存在超出执行机处理能力的情况发生,保证了执行机不会由于超负荷工作而发生宕机的情况,进而提高了执行机的任务处理效率。
在一个实施例中,方法还包括:获取待调度任务对应的预设处理时间;根据处理性能指标将待调度任务进行分组处理得到多个分组任务,包括:根据处理性能指标以及预设处理时间将待调度任务进行分组处理得到多个分组任务。
具体地,分组任务的大小可以根据执行机对分组任务的处理效率来决定,例如当预设处理时间为10S时,即此时需要执行机在10S内完成对分组任务的处理,发现执行机处理20万数据量的分组任务用时20S,那么此时不满足用户的效率要求,此时应该将各分组任务的数据量划分为10万数据量,因为10万数据量对应的处理时效是10S,此时满足用户在预设处理时间内完成任务的效率需求,那么此时设定分组任务的大小为10万数据量。并且进一步地,还可以根据预设处理时间以及各执行机的处理性能指标将待调度任务进行分组处理得到多个分组任务,以保证各执行机在执行分配到的分组任务时能够始终处于最大任务负载率范围内,并且还能保证在预设处理时间内完成对应的分组任务。进一步地,当还存在未分配至执行机中的待调度任务时,还可以根据剩余的待调度任务增加对应的执行机,以根据增加的执行机对剩余的待调度任务继续进行任务执行。
在本实施例中,按照预设处理时间以及处理性能指标对待调度任务进行分组处理,不仅保证了任务能在预设时间内完成,还能保证各执行机在执行任务的时候始终处于在最大任务负载率范围之内,不会出现由于任务负载率过高导致宕机等情况的发生。
在一个实施例中,根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务,包括:获取待调度任务对应的预设处理时间;根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,获取各执行机利用一个处理线程对分配到的分组任务进行处理对应的实际处理时间;根据预设处理时间以及实际处理时间确定各执行机中的处理线程的线程数量;在各执行机中根据对应线程数量的处理线程对分配到的分组任务并行处理。
其中,预设处理时间是利用各执行机对待调度任务进行处理对应的目标处理时间。具体的,将各分组任务按照各执行机对应的计算性能指标分配至对应的执行机之后,还包括获取各执行机利用一个处理线程对分配到的分组任务进行处理对应的实际处理时间,并根据各执行机的实际处理时间预设处理时间进行比对,确定各执行机中的处理线程的线程数量。具体的,当实际处理时间大于预设处理时间时,说明在各执行机中利用一个处理线程处理任务时不能满足预设的时间要求,故而需要在一个或者多个执行机中同时利用多个处理线程并行对分配到的分组任务进行处理,以满足预设时间处理需求。
在一个实施例中,可以首先在计算性能指标较小(负载较大)的执行机中开启多个线程并行对分配到的分组任务进行处理,以分摊负载较大的执行机的负载压力。然后再陆续在计算性能指标较大的执行机中开启多个数量的处理线程并行对分配到的分组任务进行处理,直至实际处理时间不大于预设处理时间时,说明此时在执行机中处理待调度任务时满足目标时间需求,故而确定利用此时确定的线程数量的处理线程并行在各执行机中执行任务。
本实施例中,为了进一步地提高任务调度的效率,当执行机接收到分配到自身的分组任务时,还根据各分组任务对应的任务量大小、预设处理时间以及实际处理时间确定执行该分组任务的处理线程数量,并且实际处理时间超过预设处理时间时,还可以触发多个处理线程并行处理分配到的分组任务,极大地提高了任务调度的效率。
在一个实施例中,根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中之后,还包括:监控各执行机对应的当前资源负载率;当当前资源负载率大于预设负载率时,调整当前资源负载率大于预设负载率的执行机上的分组任务的任务大小,以使得执行机的当前资源负载率不大于预设资源负载率。
在一个实施例中可以将所有的待调度任务进行分组处理得到多个分组任务,然后将各分组任务分配至对应处理性能指标的执行机中,调度中心监控分配到分组任务的执行机对应的任务负载率,当任务负载率大于预设阈值时再执行对执行机中的分组任务的数量进行二次调整以使得各执行机的任务负载率在预设范围内。具体地,当将各分组任务分配至对应处理性能的执行机中后,调度中心还用于监控各执行机的任务负载率,并且当监控到执行机中的任务负载率大于预设阈值时,调度中心还用于发出关于该执行机的警示信息,以根据警示信息对执行机上执行的任务进行调整,如可以减少分配至该执行机中任务分组的任务数量,使得调整后任务数量的执行机的任务负载率不大于预设阈值。
如在一个实施例中,可以将100个任务划分为5个分组任务,每个分组任务对应的任务数量为20个,并将各分组任务分配至5个执行机中,此时执行机可以开启多线程并行对分配到的各分组任务进行执行,如可以开启20个线程并行对20个任务分别进行处理,当调度中心监控到执行机中的任务负载率大于预设阈值时如大于90%时,说明将20个数量对应的分组任务分配至执行机中后占用执行机较多的计算资源,故而此时可以调整分组任务中包含的任务的数量,如可以将分组任务中的任务数量从20调整为10个,此时可以在执行机中开启10个线程对分组任务并行进行处理,相比于20个线程并行处理此时的10个线程并行处理降低了执行机的任务负载率,实现了将执行机的负载率控制在预设范围内。
在另一个实施例中还可以首先确定执行机在最大任务负载率的状态下能够接收的最大任务数量,然后从待调度任务中选取与最大任务数量对应的可分配待调度任务,然后将选取到的可分配待调度任务进行分组处理得到多个分组任务,并再执行将各分组任务分配至执行机中的步骤。由于分组任务是根据各执行机的任务负载率得到的,故而将各分组任务分配至执行机后能够保证各执行机的任务负载率在预设范围内。但是在本实施例中可能会存在可分配待调度任务小于待调度任务的情况,故而此时还包括计算可分配待调度任务与待调度任务的差值得到剩余的未分配任务,再执行将剩余的未分配任务再次根据预设规则分配至执行机中,或者在其他实施例中还可以扩展执行机的数量,以将剩余的未分配任务再次根据预设规则分配至增加的执行机中。
在本实施例中,将分组任务分配至执行机中后还用于监控执行机的任务负载率,当任务负载率大于预设阈值时还可以及时调整各执行机中的分组任务的任务数量或者任务大小,以保证各执行机能够始终处于安全的任务负载率内,保证执行机不会由于任务负载率超出自身的处理能力而发生宕机的情况发生,提高了执行机的处理效率。
在一个实施例中,获取各执行机对应的处理性能指标之后,还包括:当待调度任务对应为不可拆分的单任务时,将待调度任务分配至最大的处理性能指标对应的执行机中,以指示执行机处理分配到的任务;当待调度任务对应为可拆分的多任务时,继续根据各处理性能指标将待调度任务进行分组处理得到多个分组任务。
具体地,不可拆分的任务可以是单任务,即只能在一个执行机执行而不能同时在多个执行机中执行的任务。可拆分任务是指可按照预设规则对待调度任务进行拆分得到多个分组任务对应的子任务,此时可将各分组任务分别分配至不同的执行机中,以使得多个执行机同时执行分配到的分组任务。进一步地,可拆分的待调度任务可为数量可拆分的待调度任务,如当待调度任务对应为多个待处理保单,按照预设拆分规则将多个待处理保单进行拆分可得到多个不同数量的待处理保单对应的子任务,如待调度任务可为1000个待处理保单,多个不同数量的待处理保单对应的子任务可分别为100个待处理保单子任务、200个待处理保单子任务、300个待处理保单子任务以及400个待处理保单子任务等。或者可拆分的待调度任务可为功能可拆分的待调度任务,具体地,可根据待调度任务的不同功能将待调度任务拆分为多个功能模块对应的待调度子任务,以将各待调度子任务分别分配至多个执行机中,利用多个执行机同时执行该待调度任务,提高对待调度任务的执行效率。
具体地,调度中心可以根据待调度任务标识获取该调度任务的任务类型,若当待调度任务的任务类型对应为不可拆分的单任务时,执行将待调度任务分配至最大的处理性能指标对应的执行机中,以指示执行机处理分配到的分组任务,由于最大性能处理指标的执行机的执行能力最强,故而将该单任务分配至该执行机中可以提高对待单任务的处理效率。当待调度任务的任务类型对应为可拆分的多任务时,然后按照预设规则继续根据处理性能指标将待调度任务进行分组处理得到多个分组任务,并将各分组任务分配至对应的执行机中同时执行对应的任务。
在另一个实施例中,还包括计算待调度任务对应的任务大小,当任务大小不大于预设阈值时,将待调度任务分配至最大的处理性能指标对应的执行机中;当任务大小大于预设阈值时,根据各处理性能指标将待调度任务进行分组处理得到多个分组任务。在本实施例中,直接根据任务的大小判断是否需要将任务进行分组处理,实现了当任务较小时直接分配至执行机中执行,当任务为大任务时才进行分组处理,提高了对不同任务大小的待处理任务的处理效率。
具体地,调度中心可以获取待调度任务的任务大小,当任务大小大于预设阈值时,将待调度任务进行拆分得到多个分组任务,并且预设阈值可以根据任务需要自行设定,例如可以定义预设阈值为10万,此时10万数量以内的待调度任务不用分组处理,大于10万数量的待调度任务需要执行分组处理。
参考图3,图3提供了一种将待调度任务分配至对应执行机中的流程示意图。具体地,图3中的任务A对应为单任务,单任务是不需要再次进行拆分并且可直接分配到执行机中进行执行的任务。具体地,任务管理创建任务A,并且当任务A被触发时将其分配至执行机1中执行任务,其中执行机1可以对应为处理性能指标最高的执行机,或者在其他实施例中还可以直接将任务A随机分配至任意一台执行机中执行任务。进一步地,如果执行机1上发生故障时,可以首先在发生故障的执行机中自循环重复执行任务A,当在预设重试次数内任务A在该执行机中重新被成功执行时,说明执行机为正常执行机,若当在预设重试次数内执行机皆不能成功执行对应的任务A时,此时判定该执行机为故障执行机,此时可以把任务A分配到其他健康的执行机上,具体地可以依次将任务A循环重新分配至其他的执行机,直至在某一台执行机上执行成功。在本实施例中通过将单任务分配至执行机中进行执行,如果任务A执行失败还可以通过失败补救,再次调用执行机进行补偿,告知任务管理任务失败再次触发,如果任务执行成功告知任务管理执行成功,提高了任务执行的成功率。
图3中任务B对应为可拆分任务,具体地,任务管理创建任务B去执行机上执行任务,若任务B处理的业务比较多,执行起来比较耗时。此时可把任务B拆分成子任务B1、子任务B2以及子任务BN等等多个子任务,再将各个子任务分配到各执行机中以并行在执行机中执行。具体地,可以根据执行机的资源情况把任务B进行拆分为多个子任务,然后将子任务分配到多个执行机中进行执行。具体地,调度中心的监控中心,用于实时监控各执行机的状态,以及各个任务的执行情况,通过实时监控各执行机上的任务负载情况,根据任务负载情况合理地将各子任务分配到合适的执行机中,以使得各执行机中的任务负载量始终是动态平衡的,这样可以保证所有的子任务在各执行机中可以同时被完成,提高任务的处理效率。
在本实施例中,通过判断各待处理任务的任务类型后,按照不同的规则将各待处理任务进行处理,并根据不同的算法原理将待处理任务分配至执行机中,实现了对任务的合理分配以及在执行机中对任务的最大效率的执行,提高了对待调度任务的执行效率。具体地,在本申请中将任务执行时间较长的任务拆分成多个子任务,提高任务的执行效率。
在一个实施例中,根据处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务,包括:获取待调度任务对应的最小任务分组单元以及最小任务分组单元对应的分组单元数量;当执行机数量小于分组单元数量时,根据各执行机的处理性能指标对应的数值构建分组比例,根据最小任务分组单元以及分组比例对待调度任务进行分组处理,得到分组单元数量符合分组比例的多个分组任务;当执行机数量不小于分组单元数量时,将待调度任务划分为最小任务分组单元对应的分组任务,按照处理性能指标从高到低的顺序依次将分组任务分配至对应的执行机中。
具体地,当调度中心判定待调度任务对应的任务类别是可拆分任务时,还包括获取待调度任务对应的最小任务分组单元以及最小任务分组单元对应的分组单元数量,其中分组单元数量是指根据最小任务分组单元对待调度任务进行分组处理得到的分组任务的数量,即分组单元数量是待调度任务对应的最大分组任务数量。
调度中心获取执行机的数量,然后将执行机数量与分组单元数量进行比对,当判断执行机数量小于分组单元数量时,判定此时需要向部分执行机中分配多个数量的最小任务分组单元对应的分组任务。具体地,当执行机数量小于分组单元数量时,可以根据各执行机的处理性能指标对应的数值构建比例关系,根据比例关系对待调度任务进行分组处理,得到分组单元数量符合比例关系的多个分组任务。在另一个实施例中,当判断执行机数量大于或者等于分组单元数量时,将待调度任务划分为最小任务分组单元对应的分组任务,按照处理性能指标从高到低的顺序依次将分组任务分配至对应的执行机中。
在具体的实施例中,当执行机的数量为10个并且各执行机对应的处理性能指标的比例关系为1:2:3:4:5:6:7:8:1:1,待调度任务对应的最小任务分组单元的分组单元数量为40个,此时判定执行机的数量小于分组单元数量,故而需要根据比例关系1:2:3:4:5:6:7:8:2:2对待调度任务进行分组处理,得到分组单元数量符合比例关系的多个分组任务,具体地得到的各分组任务中的分组单元数量之比为1:2:3:4:5:6:7:8:2:2。然后按照处理性能指标从高到低的顺序依次将分组任务分配至对应的执行机中,具体的是将分组单元数量之比为1:2:3:4:5:6:7:8:2:2的分组任务中分别分配至处理性能指标为1:2:3:4:5:6:7:8:2:2对应的执行机中,实现了将分组数量较多的分组任务分配至处理性能指标较高的执行机中。需要说明的是由于各任务分组单元对应一个完整的任务,故而当比例关系中存在小数时还包括去小数保留整数。
进一步地,调度中心还用于监控各执行机的健康状态,获取健康执行机对应的健康执行机数量,然后再将健康执行机数量与分组单元数量进行比对,并根据比对结果执行待调度任务的划分以及分配等步骤。
在本实施例中,根据执行机与分组单元数量的大小关系选择不同的任务分配方法,进而实现了在不同场景下合理分配待调度任务的目的,提高了该方法的场景适应性。
在一个实施例中,方法还包括:实时监控各执行机的健康状态;当监控到执行机的健康状态为疑似故障时,向疑似故障的执行机发送任务重新执行指令,并获取任务的执行状态,当任务重新执行指令的发送次数等于预设值并且执行状态皆对应为执行失败时,判定疑似故障的执行机为故障执行机;获取健康状态的执行机对应的处理性能指标;根据健康状态的执行机对应的处理性能指标将故障执行机中的分组任务分配到各健康的执行机中。
具体地,调度中心中的监控单元还用于实时监控各执行机的健康状态,当首次监控到执行机的健康状态为疑似故障时,向疑似故障的执行机发送任务重新执行指令,并获取任务的执行状态,当任务重新执行指令的发送次数等于预设值并且执行状态皆对应为执行失败时,判定疑似故障的执行机为故障执行机。在本实施例中,在一次任务中当判定执行机为疑似故障执行机时,执行继续对疑似故障执行机的健康状态进行验证的步骤,如可以连续向疑似故障的执行机发送任务,当执行机在连续多次皆不能成功执行对应的任务时,判定执行机为故障执行机,然后获取健康状态的执行机对应的处理性能指标;根据健康状态的执行机对应的处理性能指标将故障执行机中的任务分配到各健康的执行机中,实现将故障执行机中的任务重新分配至健康状态执行机中。具体地,分布式任务调度通过任务故障转移把故障执行机中的任务转移到其他执行机上去完成,对于当前任务在执行机中执行失败时,可多次重试,具体的重试次数可自定义,如重试次数是一种经验数据,一般设置为3-5次,若重试3-5次仍然失败就可以判定这是一个故障节点。
在定时任务中,现有技术中一般利用一个执行机执行待调度任务,若该执行机发生故障时,无法进行任务切换及任务补救措施,就会直接造成待调度任务执行失败,并且若待调度任务的任务量很大或者定时任务业务逻辑复杂时,此时利用单一的执行机执行任务就会使得该执行机的负载压力很大,使得任务执行的效率低下。然而在本申请中,第一方面是利用多个执行机同时并行执行待调度任务,并且还可以按照各执行机的处理性能指标对待调度任务进行任务分组得到多个分组任务,然后再按照各处理性能指标将分组任务分配至对应的执行机中,使得各执行机能够正好处理分配到的分组任务,提高了对待调度任务的整体处理效率,并且进一步地,还用于实时监控各执行机的健康状态,当存在故障执行机时还可以及时将故障执行机中的分组任务重新分配至健康的执行机中,以保证各分组任务都能被正确执行。
在本实施例中,采用分布式任务调用,通过任务集中调度,实现在任务执行中发生故障时的切换,以及对于任务调度失败后的补救措施。具体地,通过实时监控各执行机的健康状态,并且当检测到疑似故障执行机时对该执行机的健康状态再次验证,当该执行机在多次的重试任务中皆不能成功执行任务时,确定疑似故障执行机为故障执行机,然后将故障执行机中的任务及时分配到健康的执行机中,以避免分配到故障执行机中的任务长时间得不到处理,降低任务处理的效率。
在另一个实施例中,还包括:当将各分组任务分配至对应的执行机中后,还包括实时监控各执行机中的任务负载率,当各执行机的任务负载率不平衡时还包括对各执行机中的分组任务重新进行分配,以保持各执行机中的负载率基本平衡,进而实现各执行机能够基本同时完成分配到的分组任务,提高对待调度任务的整体执行效率。
在本申请中,对于分布式任务调度中因其他不可控因素导致的执行机故障进行任务转移,避开有问题的执行机消耗执行任务。对于分布式任务调度中因其他不可控因素导致的任务执行失败进行补救,避免的任务的漏执行,也提高了任务的准时性。对于业务逻辑处理复杂的定时任务,通过任务拆分,业务更加清晰,调度处理也会大大提升。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种任务调度装置,包括:
请求接收模块410,用于接收待调度任务调度请求,待调度任务调度请求中携带有待调度任务标识。待调度任务获取模块420,用于获取待调度任务标识对应的待调度任务;其中,待调度任务中包括多于一个的单片任务,并且每一个单片任务对应的任务类型相同。计算模块430,用于计算各执行机对应的处理性能指标。分组模块440,用于根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务。执行模块450,用于根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务。
在一个实施例中,计算模块430,包括:待处理标识获取单元,用于获取分配到各执行机中的待处理任务对应的待处理任务标识。占用率计算单元,用于获取各待处理任务标识对应的待处理任务,根据待处理任务计算得到当前资源负载率。指标得到单元,用于根据各当前资源负载率得到各执行机对应的处理性能指标。
在一个实施例中,指标得到单元包括:处理性能指标获取子单元,用于根据各执行机的当前资源负载率以及预设资源负载率得到各执行机对应的处理性能指标;其中,预设资源负载率是各执行机负载最大任务量时对应的负载率。
在一个实施例中,分组模块440包括:可分配任务提取单元,用于根据处理性能指标从待调度任务中提取可分配待调度任务。分组单元,用于根据各处理性能指标确定分组比例,并根据分组比例将可分配待调度任务中的各单片任务进行分组处理得到多个分组任务。
在一个实施例中,执行模块450,还包括:预设时间获取模块,获取待调度任务对应的预设处理时间。实际处理时间获取模块,用于根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,获取各执行机利用一个处理线程对分配到的分组任务进行处理对应的实际处理时间。线程数量确定模块,用于根据预设处理时间以及实际处理时间确定各执行机中的处理线程的线程数量。并行处理模块,用于在各执行机中根据对应线程数量的处理线程对分配到的分组任务并行处理。
在一个实施例中,分组模块440还包括:分组单元,用于根据处理性能指标以及预设处理时间将待调度任务进行分组处理得到多个分组任务。
在一个实施例中,任务调度装置还包括:不可拆分处理模块,用于当待调度任务对应为不可拆分的单任务时,将待调度任务分配至最大的处理性能指标对应的执行机中,以指示执行机处理分配到的任务。可拆分处理模块,用于当待调度任务对应为可拆分的多任务时,继续根据处理性能指标将待调度任务进行分组处理得到多个分组任务。
在一个实施例中,分组模块440,包括:数量获取单元,用于获取待调度任务对应的最小任务分组单元以及最小任务分组单元对应的分组单元数量。分组任务获取单元,用于当执行机数量小于分组单元数量时,根据各执行机的处理性能指标对应的数值构建分组比例,根据最小任务分组单元以及分组比例对待调度任务进行分组处理,得到分组单元数量符合分组比例的多个分组任务。分配单元,用于当执行机数量不小于分组单元数量时,将待调度任务划分为最小任务分组单元对应的分组任务,按照处理性能指标从高到低的顺序依次将分组任务分配至对应的执行机中。
在一个实施例中,任务调度装置还包括:状态监控模块,用于实时监控各执行机的健康状态。故障判定模块,用于当监控到执行机的健康状态为疑似故障时,向疑似故障的执行机发送任务重新执行指令,并获取任务的执行状态,当任务重新执行指令的发送次数等于预设值并且执行状态皆对应为执行失败时,判定疑似故障的执行机为故障执行机。健康执行机指标获取模块,用于获取健康状态的执行机对应的处理性能指标。再分配模块,用于根据健康状态的执行机对应的处理性能指标将故障执行机中的分组任务分配到各健康的执行机中。
关于任务调度装置的具体限定可以参见上文中对于任务调度方法的限定,在此不再赘述。上述任务调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理机中,也可以以软件形式存储于计算机设备中的存储机中,以便于处理机调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务机,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理机、存储机和网络接口。其中,该计算机设备的处理机用于提供计算和控制能力。该计算机设备的存储机包括非易失性存储介质、内存储机。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储机为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储任务调度数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理机执行时以实现一种任务调度方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储机和处理机,存储机中存储有计算机程序,该处理机执行计算机程序时实现以下步骤:接收待调度任务调度请求,待调度任务调度请求中携带有待调度任务标识;获取待调度任务标识对应的待调度任务;其中,待调度任务中包括多于一个的单片任务,并且每一个单片任务对应的任务类型相同;计算各执行机对应的处理性能指标;根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务;根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务。
在一个实施例中,处理机执行计算机程序时实现计算各执行机对应的处理性能指标的步骤时还用于:获取分配到各执行机中的待处理任务对应的待处理任务标识;获取各待处理任务标识对应的待处理任务,根据待处理任务计算得到当前资源负载率;根据各当前资源负载率得到各执行机对应的处理性能指标。
在一个实施例中,处理机执行计算机程序时实现根据各当前资源负载率得到各执行机对应的处理性能指标的步骤时还用于:根据各执行机的当前资源负载率以及预设资源负载率得到各执行机对应的处理性能指标;其中,预设资源负载率是各执行机负载最大任务量时对应的负载率。
在一个实施例中,处理机执行计算机程序时实现根据各处理性能指标确定分组比例,并根据分组比例将待调度任务进行分组处理得到多个分组任务的步骤时还用于:根据处理性能指标从待调度任务中提取可分配待调度任务;根据各处理性能指标确定分组比例,并根据分组比例将可分配待调度任务中的各单片任务进行分组处理得到多个分组任务。
在一个实施例中,处理机执行计算机程序时实现根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务的步骤时还用于:获取待调度任务对应的预设处理时间;根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,获取各执行机利用一个处理线程对分配到的分组任务进行处理对应的实际处理时间;根据预设处理时间以及实际处理时间确定各执行机中的处理线程的线程数量;在各执行机中根据对应线程数量的处理线程对分配到的分组任务并行处理。
在一个实施例中,处理机执行计算机程序时实现获取各执行机对应的处理性能指标之后的步骤时还用于:当待调度任务对应为不可拆分的单任务时,将待调度任务分配至最大的处理性能指标对应的执行机中,以指示执行机处理分配到的任务;当待调度任务对应为可拆分的多任务时,继续根据处理性能指标将待调度任务进行分组处理得到多个分组任务。
在一个实施例中,处理机执行计算机程序时实现根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务的步骤时还用于:获取待调度任务对应的最小任务分组单元以及最小任务分组单元对应的分组单元数量;当执行机数量小于分组单元数量时,根据各执行机的处理性能指标对应的数值构建分组比例,根据最小任务分组单元以及分组比例对待调度任务进行分组处理,得到分组单元数量符合分组比例的多个分组任务;当执行机数量不小于分组单元数量时,将待调度任务划分为最小任务分组单元对应的分组任务,按照处理性能指标从高到低的顺序依次将分组任务分配至对应的执行机中。
在一个实施例中,处理机执行计算机程序时还实现以下步骤:实时监控各执行机的健康状态;当监控到执行机的健康状态为疑似故障时,向疑似故障的执行机发送任务重新执行指令,并获取任务的执行状态,当任务重新执行指令的发送次数等于预设值并且执行状态皆对应为执行失败时,判定疑似故障的执行机为故障执行机;获取健康状态的执行机对应的处理性能指标;根据健康状态的执行机对应的处理性能指标将故障执行机中的分组任务分配到各健康的执行机中。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理机执行时实现以下步骤:接收待调度任务调度请求,待调度任务调度请求中携带有待调度任务标识;获取待调度任务标识对应的待调度任务;其中,待调度任务中包括多于一个的单片任务,并且每一个单片任务对应的任务类型相同;计算各执行机对应的处理性能指标;根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务;根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务。
在一个实施例中,计算机程序被处理机执行时实现计算各执行机对应的处理性能指标的步骤时还用于:获取分配到各执行机中的待处理任务对应的待处理任务标识;获取各待处理任务标识对应的待处理任务,根据待处理任务计算得到当前资源负载率;根据各当前资源负载率得到各执行机对应的处理性能指标。
在一个实施例中,计算机程序被处理机执行时实现根据各当前资源负载率得到各执行机对应的处理性能指标的步骤时还用于:根据各执行机的当前资源负载率以及预设资源负载率得到各执行机对应的处理性能指标;其中,预设资源负载率是各执行机负载最大任务量时对应的负载率。
在一个实施例中,计算机程序被处理机执行时实现根据各处理性能指标确定分组比例,并根据分组比例将待调度任务进行分组处理得到多个分组任务的步骤时还用于:根据处理性能指标确定分组比例,并根据分组比例从待调度任务中提取可分配待调度任务;根据处理性能指标将可分配待调度任务中的各单片任务进行分组处理得到多个分组任务。
在一个实施例中,计算机程序被处理机执行时实现根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,以指示执行机根据分配到的分组任务确定对应数量的处理线程,并根据各处理线程并行处理分配到的分组任务的步骤时还用于:获取待调度任务对应的预设处理时间;根据各执行机对应的处理性能指标将各分组任务分配至对应的执行机中,获取各执行机利用一个处理线程对分配到的分组任务进行处理对应的实际处理时间;根据预设处理时间以及实际处理时间确定各执行机中的处理线程的线程数量;在各执行机中根据对应线程数量的处理线程对分配到的分组任务并行处理。
在一个实施例中,计算机程序被处理机执行时实现获取各执行机对应的处理性能指标之后的步骤时还用于:当待调度任务对应为不可拆分的单任务时,将待调度任务分配至最大的处理性能指标对应的执行机中,以指示执行机处理分配到的任务;当待调度任务对应为可拆分的多任务时,继续根据处理性能指标将待调度任务进行分组处理得到多个分组任务。
在一个实施例中,计算机程序被处理机执行时实现根据各处理性能指标确定分组比例,并根据分组比例将待调度任务中的各单片任务进行分组处理得到多个分组任务的步骤时还用于:获取待调度任务对应的最小任务分组单元以及最小任务分组单元对应的分组单元数量;当执行机数量小于分组单元数量时,根据各执行机的处理性能指标对应的数值构建分组比例,根据最小任务分组单元以及分组比例对待调度任务进行分组处理,得到分组单元数量符合分组比例的多个分组任务;当执行机数量不小于分组单元数量时,将待调度任务划分为最小任务分组单元对应的分组任务,按照处理性能指标从高到低的顺序依次将分组任务分配至对应的执行机中。
在一个实施例中,计算机程序被处理机执行时还实现以下步骤:实时监控各执行机的健康状态;当监控到执行机的健康状态为疑似故障时,向疑似故障的执行机发送任务重新执行指令,并获取任务的执行状态,当任务重新执行指令的发送次数等于预设值并且执行状态皆对应为执行失败时,判定疑似故障的执行机为故障执行机;获取健康状态的执行机对应的处理性能指标;根据健康状态的执行机对应的处理性能指标将故障执行机中的分组任务分配到各健康的执行机中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储机、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储机中的至少一种。非易失性存储机可包括只读存储机(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储机等。易失性存储机可包括随机存取存储机(Random Access Memory,RAM)或外部高速缓冲存储机。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储机(Static Random Access Memory,SRAM)或动态随机存取存储机(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种任务调度方法,其特征在于,所述方法包括:
接收待调度任务调度请求,所述待调度任务调度请求中携带有待调度任务标识;
获取所述待调度任务标识对应的待调度任务;其中,所述待调度任务中包括多于一个的单片任务,并且每一个所述单片任务对应的任务类型相同;
计算各执行机对应的处理性能指标;
根据各所述处理性能指标确定分组比例,并根据所述分组比例将所述待调度任务中的各所述单片任务进行分组处理得到多个分组任务;
根据各所述执行机对应的处理性能指标将各所述分组任务分配至对应的所述执行机中,以指示所述执行机根据分配到的所述分组任务确定对应数量的处理线程,并根据各所述处理线程并行处理分配到的所述分组任务。
2.根据权利要求1所述的方法,其特征在于,所述计算各执行机对应的处理性能指标,包括:
获取分配到各所述执行机中的待处理任务对应的待处理任务标识;
获取各所述待处理任务标识对应的待处理任务,根据所述待处理任务计算得到当前资源负载率;
根据各所述当前资源负载率得到各所述执行机对应的处理性能指标。
3.根据权利要求2所述的方法,其特征在于,所述根据各所述当前资源负载率得到各所述执行机对应的处理性能指标,包括:
根据各所述执行机的当前资源负载率以及预设资源负载率得到各所述执行机对应的处理性能指标;其中,所述预设资源负载率是各所述执行机负载最大任务量时对应的负载率;
所述根据各所述处理性能指标确定分组比例,并根据所述分组比例将所述待调度任务中的各所述单片任务进行分组处理得到多个分组任务,包括:
根据所述处理性能指标从所述待调度任务中提取可分配待调度任务;
根据所述处理性能指标确定分组比例,并根据分组比例将所述可分配待调度任务中的各单片任务进行分组处理得到多个分组任务。
4.根据权利要求1所述的方法,其特征在于,所述根据各所述执行机对应的处理性能指标将各所述分组任务分配至对应的所述执行机中,以指示所述执行机根据分配到的所述分组任务确定对应数量的处理线程,并根据各所述处理线程并行处理分配到的所述分组任务,包括:
获取所述待调度任务对应的预设处理时间;
根据各所述执行机对应的所述处理性能指标将各所述分组任务分配至对应的所述执行机中,获取各执行机利用一个处理线程对分配到的所述分组任务进行处理时对应的实际处理时间;
根据所述预设处理时间以及所述实际处理时间确定各所述执行机中的处理线程的线程数量;
在各所述执行机中根据对应线程数量的处理线程对分配到的所述分组任务并行处理。
5.根据权利要求2所述的方法,其特征在于,所述获取各执行机对应的处理性能指标之后,还包括:
当所述待调度任务对应为不可拆分的单任务时,将所述待调度任务分配至最大的所述处理性能指标对应的执行机中,以指示所述执行机处理分配到的所述任务;
当所述待调度任务对应为可拆分的多任务时,继续根据所述处理性能指标将所述待调度任务进行分组处理得到多个分组任务。
6.根据权利要求5所述的方法,其特征在于,所述根据各所述处理性能指标确定分组比例,并根据所述分组比例将所述待调度任务中的各所述单片任务进行分组处理得到多个分组任务,包括:
获取所述待调度任务对应的最小任务分组单元以及所述最小任务分组单元对应的分组单元数量;
当所述执行机数量小于所述分组单元数量时,根据各所述执行机的处理性能指标对应的数值构建分组比例,根据所述最小任务分组单元以及所述分组比例对所述待调度任务进行分组处理,得到分组单元数量符合所述分组比例的多个分组任务;
当所述执行机数量不小于所述分组单元数量时,将所述待调度任务划分为最小任务分组单元对应的分组任务,按照所述处理性能指标从高到低的顺序依次将所述分组任务分配至对应的执行机中。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
实时监控各所述执行机的健康状态;
当监控到所述执行机的健康状态为疑似故障时,向所述疑似故障的执行机发送任务重新执行指令,并获取所述任务的执行状态,当所述任务重新执行指令的发送次数等于预设值并且所述执行状态皆对应为执行失败时,判定所述疑似故障的执行机为故障执行机;
获取健康状态的执行机对应的处理性能指标;
根据健康状态的执行机对应的处理性能指标将所述故障执行机中的分组任务分配到各健康的所述执行机中。
8.一种任务调度装置,其特征在于,所述装置包括:
请求接收模块,用于接收待调度任务调度请求,所述待调度任务调度请求中携带有待调度任务标识;
待调度任务获取模块,用于获取所述待调度任务标识对应的待调度任务;其中,所述待调度任务中包括多于一个的单片任务,并且每一个所述单片任务对应的任务类型相同;
计算模块,用于计算各执行机对应的处理性能指标;
分片模块,用于根据各所述处理性能指标确定分组比例,并根据所述分组比例将所述待调度任务中的各所述单片任务进行分组处理得到多个分组任务;
执行模块,用于根据各所述执行机对应的处理性能指标将各所述分组任务分配至对应的所述执行机中,以指示所述执行机根据分配到的所述分组任务确定对应数量的处理线程,并根据各所述处理线程并行处理分配到的所述分组任务。
9.一种计算机设备,包括存储机和处理机,所述存储机存储有计算机程序,其特征在于,所述处理机执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理机执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202011027115.1A 2020-09-25 2020-09-25 任务调度方法、装置、计算机设备和存储介质 Pending CN112162839A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011027115.1A CN112162839A (zh) 2020-09-25 2020-09-25 任务调度方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011027115.1A CN112162839A (zh) 2020-09-25 2020-09-25 任务调度方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN112162839A true CN112162839A (zh) 2021-01-01

Family

ID=73864115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011027115.1A Pending CN112162839A (zh) 2020-09-25 2020-09-25 任务调度方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112162839A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764924A (zh) * 2021-01-14 2021-05-07 城云科技(中国)有限公司 任务调度方法、装置及电子设备
CN112988360A (zh) * 2021-05-10 2021-06-18 杭州绿城信息技术有限公司 一种基于大数据分析的任务分发系统
CN113778650A (zh) * 2021-09-14 2021-12-10 北京沃东天骏信息技术有限公司 任务调度方法、装置、电子设备及存储介质
CN114448893A (zh) * 2021-12-24 2022-05-06 天翼云科技有限公司 一种cdn节点任务下发的聚合方法、装置及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102475A (zh) * 2013-04-11 2014-10-15 腾讯科技(深圳)有限公司 分布式并行任务处理的方法、装置及系统
CN108563500A (zh) * 2018-05-08 2018-09-21 深圳市零度智控科技有限公司 基于云平台的任务调度方法、云平台及计算机存储介质
CN110209496A (zh) * 2019-05-20 2019-09-06 中国平安财产保险股份有限公司 基于数据处理的任务分片方法、装置及分片服务器
CN111522641A (zh) * 2020-04-21 2020-08-11 北京嘀嘀无限科技发展有限公司 任务调度方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102475A (zh) * 2013-04-11 2014-10-15 腾讯科技(深圳)有限公司 分布式并行任务处理的方法、装置及系统
CN108563500A (zh) * 2018-05-08 2018-09-21 深圳市零度智控科技有限公司 基于云平台的任务调度方法、云平台及计算机存储介质
CN110209496A (zh) * 2019-05-20 2019-09-06 中国平安财产保险股份有限公司 基于数据处理的任务分片方法、装置及分片服务器
CN111522641A (zh) * 2020-04-21 2020-08-11 北京嘀嘀无限科技发展有限公司 任务调度方法、装置、计算机设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764924A (zh) * 2021-01-14 2021-05-07 城云科技(中国)有限公司 任务调度方法、装置及电子设备
CN112988360A (zh) * 2021-05-10 2021-06-18 杭州绿城信息技术有限公司 一种基于大数据分析的任务分发系统
CN113778650A (zh) * 2021-09-14 2021-12-10 北京沃东天骏信息技术有限公司 任务调度方法、装置、电子设备及存储介质
CN114448893A (zh) * 2021-12-24 2022-05-06 天翼云科技有限公司 一种cdn节点任务下发的聚合方法、装置及计算机设备

Similar Documents

Publication Publication Date Title
CN112162839A (zh) 任务调度方法、装置、计算机设备和存储介质
CN112162865B (zh) 服务器的调度方法、装置和服务器
US10719343B2 (en) Optimizing virtual machines placement in cloud computing environments
CN108845884B (zh) 物理资源分配方法、装置、计算机设备和存储介质
CN111818159B (zh) 数据处理节点的管理方法、装置、设备及存储介质
US9319281B2 (en) Resource management method, resource management device, and program product
CN111625331B (zh) 任务调度方法、装置、平台、服务器及存储介质
US7689996B2 (en) Method to distribute programs using remote Java objects
CN111708627B (zh) 基于分布式调度框架的任务调度方法以及装置
CN107992362B (zh) 自动化性能测试的方法、装置及系统
US9870269B1 (en) Job allocation in a clustered environment
US8468530B2 (en) Determining and describing available resources and capabilities to match jobs to endpoints
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
CN110308980A (zh) 数据的批量处理方法、装置、设备及存储介质
US9535749B2 (en) Methods for managing work load bursts and devices thereof
CN109960575B (zh) 一种计算能力共享方法、系统及相关设备
CN111459642B (zh) 一种分布式系统中故障处理和任务处理方法及装置
CN107430526B (zh) 用于调度数据处理的方法和节点
CN111459641A (zh) 一种跨机房的任务调度和任务处理的方法及装置
US20220070099A1 (en) Method, electronic device and computer program product of load balancing
CN111258746A (zh) 资源分配方法和服务设备
CN111414241A (zh) 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质
CN114625533A (zh) 分布式任务调度方法、装置、电子设备及存储介质
CN114281479A (zh) 一种容器管理方法及装置
CN117971491A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20210101