CN111858012A - 一种任务调度方法、装置、设备及介质 - Google Patents
一种任务调度方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111858012A CN111858012A CN202010779507.7A CN202010779507A CN111858012A CN 111858012 A CN111858012 A CN 111858012A CN 202010779507 A CN202010779507 A CN 202010779507A CN 111858012 A CN111858012 A CN 111858012A
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- node
- subscription request
- main node
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 15
- 239000003999 initiator Substances 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种任务调度方法、装置、设备及介质,该方法包括:根据本地的运算线程数和实时任务执行数确定任务获取参数;基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求;获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。本申请根据本地的运算线程数和实施任务执行数确定出任务获取参数,然后基于发布订阅模式向主节点发送与任务获取参数对应的任务订阅请求,最后获取并执行主节点按照任务优先级确定出来并发布的与任务订阅请求对应的待执行任务,这样可以避免节点之间的运算压力发生倾斜,提高了任务处理效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种任务调度方法、装置、设备及介质。
背景技术
当前,随着计算机的不断发展,人们对计算机的性能和资源利用效率提出了更高的要求。现有技术中,通常采用一致性哈希方式对任务进行分配,分配后每个运算节点上的任务数量相同,但是由于不同节点的运算效率不同以及不同任务执行所需时间不同,在多次采用一致性哈希方式分配任务之后,可能导致运算速度快的节点很快可以完成任务运算,而运算速度慢的节点会不断堆积任务,导致任务处理需要消耗大量的时间并加剧服务器的压力,即导致不同节点之间的运算压力发生倾斜,从而降低了任务处理的效率。
发明内容
有鉴于此,本发明的目的在于提供一种任务调度方法、装置、设备及介质。其具体方案如下:
本申请的第一方面提供了一种任务调度方法,应用于运算节点,包括:
根据本地的运算线程数和实时任务执行数确定任务获取参数;
基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求;
获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。
可选的,所述基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求之前,还包括:
所述主节点获取任务发起方提交的任务信息并将所述任务信息同步至分布式存储系统,并基于所述任务信息创建任务列表以便所述任务发起方通过所述任务列表调整任务优先级。
可选的,所述任务调度方法,还包括:
若所述主节点出现宕机,则获取其余运算节点发送的相应的实时任务执行数;
从所有运算节点中选举含有实时任务执行数最少的运算节点作为新主节点,并且,所述新主节点同步获取当前所述分布式存储系统中的所述任务信息。
可选的,所述按照任务优先级获取并执行所述主节点发布的与所述任务订阅请求对应的待执行任务之后,还包括:
对所述主节点中与所述待执行任务对应的任务信息进行加锁处理。
可选的,所述对所述主节点中与所述待执行任务对应的任务信息进行加锁处理之后,还包括:
根据所述待执行任务执行后的执行结果,对所述主节点中与所述待执行任务对应的任务信息进行解锁处理,并更新所述待执行任务在所述主节点中的任务状态。
可选的,所述按照任务优先级获取并执行所述主节点发布的与所述任务订阅请求对应的待执行任务之后,还包括:
根据第一预设时间间隔向所述主节点发送针对所述待执行任务的心跳信号,以便所述主节点根据是否接收到所述心跳信号来确定所述待执行任务是否处于被执行状态。
本申请的第二方面提供了一种任务调度方法,应用于主节点,包括:
接收运算节点基于发布订阅模式发送的与任务获取参数对应的任务订阅请求;所述任务获取参数为所述运算节点基于本地的运算线程数和实时任务执行数确定的参数;
按照任务优先级确定并向所述运算节点发布与所述任务订阅请求对应的待执行任务。
可选的,所述任务调度方法,还包括:
获取任务发起方提交的任务信息并将所述任务信息同步至分布式存储系统;
基于所述任务信息创建任务列表以便所述任务发起方通过所述任务列表调整任务优先级。
可选的,所述按照所述任务优先级确定并发布待执行任务,以便运算节点获取与所述任务订阅请求对应的待执行任务之后,还包括:
接收所述运算节点按照第一预设时间间隔发送的与所述待执行任务对应的心跳信号,以确定所述待执行任务是否处于被执行状态;
若在第二预设时间间隔内未接收到所述心跳信号,则对所述运算节点进行心跳监测,若未监测到所述运算节点的心跳,则确定所述运算节点出现宕机,并对所述待执行任务对应的任务信息进行解锁处理。
本申请的第三方面提供了一种任务调度装置,应用于运算节点,包括:
任务获取参数确定模块,用于根据本地的运算线程数和实时任务执行数确定任务获取参数;
任务订阅请求发送模块,用于基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求;
待执行任务获取模块,用于获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。
本申请的第四方面提供了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的任务调度方法。
本申请的第五方面提供了一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的任务调度方法。
本申请中,根据本地的运算线程数和实施任务执行数确定出任务获取参数,然后基于发布订阅模式向主节点发送与任务获取参数对应的任务订阅请求,最后获取并执行主节点按照任务优先级确定出来并发布的与任务订阅请求对应的待执行任务。可见,本申请通过根据运算线程数和实时执行任务数确定任务获取参数,然后向主节点发送与任务获取参数对应的任务订阅请求,以获取对应的待执行任务,相比于现有技术中利用一致性哈希的任务分配方式,本申请根据运算节点自身的运算线程数和实时任务执行数向主节点订阅任务,由此运算节点在获取待执行任务后节点中的任务量可以符合运算节点的运算能力,可以避免不同运算节点之间出现任务压力的倾斜,提高了任务处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种任务调度方法流程图;
图2为本申请提供的一种具体的任务调度方法流程图;
图3为本申请提供的一种具体的任务调度方法流程图;
图4为本申请提供的另一种任务调度方法流程图;
图5为本申请提供的一种装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
现有技术中,采用一致性哈希方式对任务进行分配,分配后每个运算节点上的任务数量相同,但是由于不同节点的运算效率不同以及不同任务执行所需时间不同,在多次采用一致性哈希方式分配任务之后会导致不同节点之间的运算压力发生倾斜,从而降低了任务处理的效率。为了克服上述问题,本申请提供了一种基于运算节点的任务调度方法,可以避免不同运算节点之间出现任务压力的倾斜,提高了任务处理效率。
本发明实施例公开了一种任务调度方法,应用于运算节点,参见图1所示,该方法可以包括以下步骤:
步骤S11:根据本地的运算线程数和实时任务执行数确定任务获取参数。
本实施例中,通过根据本地的运算线程数和实时任务执行数确定任务获取参数,可以理解的是,不同的运算节点的运算线程数可能不同,即不同运算节点能够同时处理的任务数量不同,并且不同运算节点实时处理的任务数量可能不同,上述任务获取参数可以理解为根据运算线程数与实时任务执行数之间的差值确定出的参数。
步骤S12:基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求。
本实施例中,在确定上述任务获取参数后,可以基于发布订阅模式向上述主节点发送与上述任务获取参数对应的任务订阅请求。可以理解的是,当本地实时任务执行数小于运算线程数时,可以根据实时任务执行数与运算线程数之间的差值确定任务获取参数,并基于发布订阅模式向主节点发送与任务获取参数对应的任务订阅请求以订阅相应的任务;另外,上述任务获取参数可以包含任务类型信息,即运算节点可以选择某类型的任务进行订阅。例如,M、N两个运算节点,运算线程数分别是2个和4个,若M、N两个运算节点实时任务执行数为零,即当前没有实行任务,则在同一时间段,M、N两个运算节点分别可以订阅2个待执行任务和4个待执行任务。
本实施例中,所述基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求之前,还可以包括:所述主节点获取任务发起方提交的任务信息并将所述任务信息同步至分布式存储系统,并基于所述任务信息创建任务列表以便所述任务发起方通过所述任务列表调整任务优先级。可以理解的是,上述主节点可以用于获取任务发起方提交的任务信息,并将上述任务信息同步至分布式存储系统;其中,上述分布式存储系统可以是Redis存储系统,并且,上述主节点会实时将任务信息同步至上述分布式存储系统。另外,上述主节点可以是由运算节点从所有运算节点中选举的一个运算节点,也可以是由任务发起方从所有运算节点中选择的一个运算节点,并且上述主节点的选取可以根据运算节点对应的运算线程数进行选择,也可以是随机选择的。并且,上述主节点不参与运算,仅起到任务调度的作用。
进一步的,上述主节点在获取到上述任务信息后,可以基于上述任务信息创建任务列表,并且上述任务列表可以向上述任务发起方开放,以便用户发起方通过上述任务列表调整任务的优先级。由此一来,任务发起方可以根据需求调整任务列表中任务的顺序,以调整任务的优先级。
本实施例中,上述任务调度方法,还可以包括:若所述主节点出现宕机,则获取其余运算节点发送的相应的实时任务执行数;从所有运算节点中选举含有实时任务执行数最少的运算节点作为新主节点,并且,所述新主节点同步获取当前所述分布式存储系统中的所述任务信息。可以理解的是,若上述主节点出现宕机,即不能正常运行时,运算节点向主节点发送信息时不能得到对应的响应信息,当一定数量的运算节点未接收到上述相应信息则可以判断上述主节点宕机,并会向其余运算节点发送包含实时任务执行数的主节点选举信息,以便每个运算节点根据接收到的实时任务执行数选举出含有实时任务执行数最少的运算节点作为主新节点;并且,上述新主节点会同步获取上述分布式存储系统中的任务信息,并完成主节点可执行的操作。可以理解的是,在选举新主节点的过程中,上述新主节点只保留已有的任务继续执行直到结束,不再接收新的任务。可见,当上述主节点出现宕机时,可以通过选举的方式选举出新主节点,并且上述新主节点会从上述分布式存储系统中同步获取任务信息,由此一来,主节点发生宕机可以快速选举出新主节点以恢复服务,并且可以防止任务信息的丢失。
步骤S13:获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。
本实施例中,基于发布订阅模式向主节点发送与任务获取参数对应的任务订阅请求后,可以通过发布订阅模式获取并执行上述主节点按照任务优先级确定并发布的与上述任务订阅请求对应的待执行任务。可以理解的是,若主节点中存在按照任务优先级确定并发布的待执行任务,则通过向主节点发送任务订阅请求可以获取与上述任务订阅请求对应的并且任务优先级较高的待执行任务。例如,当主节点A获取到任务发起方提交的100个任务,运算节点B、C、D开启的线程数分别为10、20、30,则运算节点B、C、D初始订阅到的任务数量分别为10、20、30,后续主节点剩余40个任务,当B、C、D中任一个运算节点拥有的实时任务执行数小于运算线程数时,可以通过确定出的任务获取参数向主节点发送任务订阅请求,直到主节点中任务均被订阅。
由上可见,本实施例中,通过根据本地的运算线程数和实施任务执行数确定出任务获取参数,然后基于发布订阅模式向主节点发送与任务获取参数对应的任务订阅请求,最后获取并执行主节点按照任务优先级确定出来并发布的与任务订阅请求对应的待执行任务。可见,本实施例通过根据运算线程数和实时执行任务数确定任务获取参数,然后向主节点发送与任务获取参数对应的任务订阅请求,以获取对应的待执行任务,相比于现有技术中利用一致性哈希的任务分配方式,本申请根据运算节点本地的运算线程数和实时任务执行数确定出的任务获取参数向主节点订阅任务,由此运算节点在获取待执行任务后节点中的任务量可以符合运算节点的运算能力,并且可以避免不同运算节点之间出现任务的倾斜,提高了任务处理效率。
本发明实施例公开了一种具体的任务调度方法,应用于运算节点,参见图2所示,该方法可以包括以下步骤:
步骤S21:根据本地的运算线程数和实时任务执行数确定任务获取参数。
步骤S22:基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求。
步骤S23:获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。
步骤S24:对所述主节点中与所述待执行任务对应的任务信息进行加锁处理。
本实施例中,当获取到上述待执行任务后,对上述主节点中的与上述待执行任务对应的任务信息进行加锁处理。可以理解的是,通过对主节点中待执行任务对应的任务信息进行加锁处理,其余运算节点就不能订阅到上述待执行任务,由此可以避免不同的运算节点同时处理相同的任务,提高了任务处理的效率。
步骤S25:根据所述待执行任务执行后的执行结果,对所述主节点中与所述待执行任务对应的任务信息进行解锁处理,并更新所述待执行任务在所述主节点中的任务状态。
本实施例中,在获取并执行上述待执行任务后,可以根据上述待执行任务执行后的执行结果,对上述主节点中与待执行任务对应的任务信息进行解锁处理,并更新上述待执行任务在上述主节点中的任务状态。可以理解的是,若上述待执行任务执行成功,则对上述主节点中与待执行任务对应的任务信息进行解锁处理,并将上述待执行任务在上述主节点中的任务状态更新为已执行状态;若上述待执行任务执行失败,则对上述主节点中与待执行任务对应的任务信息进行解锁处理,并将上述待执行任务在上述主节点中的任务状态更新为未执行状态;可以理解的是,上述任务状态可以包括未执行状态、正在执行状态和已执行状态。
其中,关于上述步骤S21至步骤S23的具体过程可以参考前述实施例公开的相应内容,在此不再赘述。
由上可见,本实施例中,通过对待执行任务对应的任务信息进行加锁处理,可以避免不同的运算节点同时处理相同的任务;并且,通过对待执行任务对应的任务信息进行解锁处理,可以使未执行成功的任务由其余运算节点获取并执行,提高了任务处理的效率。
本发明实施例公开了一种具体的任务调度方法,应用于运算节点,参见图3所示,该方法可以包括以下步骤:
步骤S31:根据本地的运算线程数和实时任务执行数确定任务获取参数。
步骤S32:基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求。
步骤S33:获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。
步骤S34:根据第一预设时间间隔向所述主节点发送针对所述待执行任务的心跳信号,以便所述主节点根据是否接收到所述心跳信号来确定所述待执行任务是否处于被执行状态。
本实施例中,在获取到上述待执行任务后,可以根据第一预设时间间隔向上述主节点发送针对上述待执行任务的心跳信号,以便主节点根据是否接收到上述心跳信号来确定上述待执行任务是否处于被执行状态;可以理解的是,当上述待执行任务处于被执行状态时,运算节点会向主节点发送与上述待执行任务对应的心跳信号,以便主节点根据是否接收到上述心跳信号来确定上述待执行任务是否处于被执行状态。
步骤S35:若所述主节点在第二预设时间间隔内未接收到所述心跳信号,则对所述运算节点进行心跳监测。
本实施例中,可以理解的是,若上述主节点在第二预设时间间隔内未接收到运算节点针对待执行任务发送的心跳信号,则对上述运算节点进行心跳监测,其中,上述心跳监测,可以是由主节点向运算节点发送心跳监测信号,然后接收上述运算节点反馈的响应信号。并且,上述第二预设时间间隔大于上述第一预设时间间隔。
步骤S36:若所述主节点未监测到所述运算节点的心跳,则确定所述运算节点出现宕机,并对所述待执行任务对应的任务信息进行解锁处理。
本实施例中,若主节点对上述运算节点进行心跳监测后,未监测到上述运算节点的心跳,则可以确定上述运算节点出现宕机,即不能正常运行,此时可以对上述待执行任务对应的任务信息进行解锁处理。
其中,关于上述步骤S31至步骤S33的具体过程可以参考前述实施例公开的相应内容,在此不再赘述。
由上可见,本实施例中,通过向主节点发送针对待执行任务的心跳信号,主节点可以判断待执行任务的执行情况,并且主节点根据接收到的心跳信号,可以对运算节点进行监测,进而判断上述运算节点是否出现宕机,若出现宕机则对相应的待执行任务对应的任务信息进行解锁,由此一来,可以由其余运算节点重新获取并执行上述待执行任务,避免了任务在执行过程中丢失的问题。
本发明实施例公开了另一种任务调度方法,应用于主节点,参见图4所示,该方法可以包括以下步骤:
步骤S41:接收运算节点基于发布订阅模式发送的与任务获取参数对应的任务订阅请求;所述任务获取参数为所述运算节点基于本地的运算线程数和实时任务执行数确定的参数。
本实施例中,可以理解的是,不同的运算节点的运算线程数可能不同,即不同运算节点能够同时处理的任务数量不同,并且不同运算节点实时处理的任务数量可能不同,上述任务获取参数可以理解为根据运算线程数与实时任务执行数之间的差值确定出的参数。
本实施例中,所述的任务调度方法,还可以包括:获取任务发起方提交的任务信息并将所述任务信息同步至分布式存储系统;基于所述任务信息创建任务列表以便所述任务发起方通过所述任务列表调整任务优先级。可以理解的是,在获取到任务发起方提交的任务信息后,将上述任务信息同步至分布式存储系统,以便上述新节点从上述分布式存储系统中获取上述任务信息;并且可以基于上述任务信息创建任务列表,以便上述任务发起方通过上述任务列表调整任务优先级,由此一来,任务发起方可以根据需求调整任务列表中任务的顺序,来调整任务的优先级。可以理解的是,上述接收运算节点基于发布订阅模式发送的与任务获取参数对应的任务订阅请求的步骤,与上述获取任务发起方提交的任务信息并将所述任务信息同步至分布式存储系统的步骤没有时间上的先后顺序。
步骤S42:按照任务优先级确定并向所述运算节点发布与所述任务订阅请求对应的待执行任务。
本实施例中,在接收到运算节点发送的任务订阅请求后,按照任务优先级确定并向运算节点发布与任务订阅请求对应的待执行任务。可以理解的是,当接收到上述任务订阅请求,并且获取到任务发起方提交的任务信息,可以基于发布订阅模式并按照任务优先级向运算节点发布与任务订阅请求对应的待执行任务。
本实施例中,所述按照任务优先级确定并向所述运算节点发布与所述任务订阅请求对应的待执行任务之后,还包括:接收所述运算节点按照第一预设时间间隔发送的与所述待执行任务对应的心跳信号,以确定所述待执行任务是否处于被执行状态;若在第二预设时间间隔内未接收到所述心跳信号,则对所述运算节点进行心跳监测,若未监测到所述运算节点的心跳,则确定所述运算节点出现宕机,并对所述待执行任务对应的任务信息进行解锁处理。可以理解的是,当待执行任务处于被执行状态,可以接收到上述运算节点按照第一预设时间间隔发送的与待执行任务对应的心跳信号;并且,若在第二预设时间间隔内未接收到上述心跳信号,则主动对上述运算节点进行心跳监测,若未监测到上述运算节点的心跳,则可以确定上述运算节点出现宕机,从而对上述待执行任务对应的任务信息进行解锁处理。其中,上述第二预设时间间隔大于上述第一预设时间间隔。由此一来,通过心跳信号可以确定待执行任务的执行状态,并且根据接收到的心跳信号对运算节点进行监测可以确定运算节点是否出现宕机,然后对出现宕机的运算节点中的待执行任务对应的任务信息进行解锁处理,以便其余运算节点重新获取并执行上述待执行任务,可以避免因为运算节点宕机而丢失任务信息的问题。
由上可见,本实施例通过接收运算节点基于发布订阅模式发送的与任务获取参数对应的任务订阅请求,然后按照任务优先级确定出并向所述运算节点发布与所述任务订阅请求对应的待执行任务,其中,上述任务获取参数为所述运算节点基于本地的运算线程数和实时任务执行数确定的参数。可见,本申请实施例通过接收由运算节点基于本地的运算线程数和实时任务执行数发送的的任务订阅请求,然后主节点根据上述任务订阅请求向运算节点发布对应的待执行任务;由此,上述运算节点可以获取到符合当前运算能力的相应数量的任务,从而可以避免不同运算节点之间出现任务的倾斜,提高了任务处理效率。
相应的,本申请实施例还公开了一种任务调度装置,参见图5所示,该装置包括:
任务获取参数确定模块11,用于根据本地的运算线程数和实时任务执行数确定任务获取参数;
任务订阅请求发送模块12,用于基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求;
待执行任务获取模块13,用于获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。
由上可见,本实施例根据本地的运算线程数和实施任务执行数确定出任务获取参数,然后基于发布订阅模式向主节点发送与任务获取参数对应的任务订阅请求,最后获取并执行主节点按照任务优先级确定出来并发布的与任务订阅请求对应的待执行任务。相比于现有技术中利用一致性哈希的任务分配方式,本申请根据运算节点自身的运算线程数和实时任务执行数向主节点订阅任务,由此运算节点在获取待执行任务后节点中的任务量可以符合运算节点的运算能力,并且可以避免不同运算节点之间出现任务的倾斜,提高了任务处理效率。
在一些实施例中,所述待执行任务获取模块13具体可以包括:
新主节点选举单元,用于若所述主节点出现宕机,则获取其余运算节点发送的相应的实时任务执行数;从所有运算节点中选举含有实时任务执行数最少的运算节点作为新主节点,并且,所述新主节点同步获取当前所述分布式存储系统中的所述任务信息;
加锁单元,用于对所述主节点中与所述待执行任务对应的任务信息进行加锁处理;
解锁单元,用于根据所述待执行任务执行后的执行结果,对所述主节点中与所述待执行任务对应的任务信息进行解锁处理,并更新所述待执行任务在所述主节点中的任务状态;
心跳信号发送单元,用于根据第一预设时间间隔向所述主节点发送针对所述待执行任务的心跳信号,以便所述主节点根据是否接收到所述心跳信号来确定所述待执行任务是否处于被执行状态;
进一步的,本申请实施例还公开了一种电子设备,参见图6所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的任务调度方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括任务信息在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的任务调度方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20获取到的任务信息。
进一步的,本申请实施例还公开了一种计算机存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的任务调度方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种任务调度方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种任务调度方法,其特征在于,应用于运算节点,包括:
根据本地的运算线程数和实时任务执行数确定任务获取参数;
基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求;
获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。
2.根据权利要求1所述的任务调度方法,其特征在于,所述基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求之前,还包括:
所述主节点获取任务发起方提交的任务信息并将所述任务信息同步至分布式存储系统,并基于所述任务信息创建任务列表以便所述任务发起方通过所述任务列表调整任务优先级。
3.根据权利要求2所述的任务调度方法,其特征在于,还包括:
若所述主节点出现宕机,则获取其余运算节点发送的相应的实时任务执行数;
从所有运算节点中选举含有实时任务执行数最少的运算节点作为新主节点,并且,所述新主节点同步获取当前所述分布式存储系统中的所述任务信息。
4.根据权利要求1所述的任务调度方法,其特征在于,所述按照任务优先级获取并执行所述主节点发布的与所述任务订阅请求对应的待执行任务之后,还包括:
对所述主节点中与所述待执行任务对应的任务信息进行加锁处理。
5.根据权利要求4所述的任务调度方法,其特征在于,所述对所述主节点中与所述待执行任务对应的任务信息进行加锁处理之后,还包括:
根据所述待执行任务执行后的执行结果,对所述主节点中与所述待执行任务对应的任务信息进行解锁处理,并更新所述待执行任务在所述主节点中的任务状态。
6.根据权利要求1所述的任务调度方法,其特征在于,所述按照任务优先级获取并执行所述主节点发布的与所述任务订阅请求对应的待执行任务之后,还包括:
根据第一预设时间间隔向所述主节点发送针对所述待执行任务的心跳信号,以便所述主节点根据是否接收到所述心跳信号来确定所述待执行任务是否处于被执行状态。
7.一种任务调度方法,其特征在于,应用于主节点,包括:
接收运算节点基于发布订阅模式发送的与任务获取参数对应的任务订阅请求;所述任务获取参数为所述运算节点基于本地的运算线程数和实时任务执行数确定的参数;
按照任务优先级确定并向所述运算节点发布与所述任务订阅请求对应的待执行任务。
8.根据权利要求7所述的任务调度方法,其特征在于,还包括:
获取任务发起方提交的任务信息并将所述任务信息同步至分布式存储系统;
基于所述任务信息创建任务列表以便所述任务发起方通过所述任务列表调整任务优先级。
9.根据权利要求7所述的任务调度方法,其特征在于,所述按照任务优先级确定并向所述运算节点发布与所述任务订阅请求对应的待执行任务之后,还包括:
接收所述运算节点按照第一预设时间间隔发送的与所述待执行任务对应的心跳信号,以确定所述待执行任务是否处于被执行状态;
若在第二预设时间间隔内未接收到所述心跳信号,则对所述运算节点进行心跳监测,若未监测到所述运算节点的心跳,则确定所述运算节点出现宕机,并对所述待执行任务对应的任务信息进行解锁处理。
10.一种任务调度装置,其特征在于,应用于运算节点,包括:
任务获取参数确定模块,用于根据本地的运算线程数和实时任务执行数确定任务获取参数;
任务订阅请求发送模块,用于基于发布订阅模式向主节点发送与所述任务获取参数对应的任务订阅请求;
待执行任务获取模块,用于获取并执行所述主节点按照任务优先级确定出来并发布的与所述任务订阅请求对应的待执行任务。
11.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至9任一项所述的任务调度方法。
12.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至9任一项所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010779507.7A CN111858012A (zh) | 2020-08-05 | 2020-08-05 | 一种任务调度方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010779507.7A CN111858012A (zh) | 2020-08-05 | 2020-08-05 | 一种任务调度方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858012A true CN111858012A (zh) | 2020-10-30 |
Family
ID=72971008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010779507.7A Withdrawn CN111858012A (zh) | 2020-08-05 | 2020-08-05 | 一种任务调度方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858012A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220441A (zh) * | 2021-07-01 | 2021-08-06 | 北京轻松筹信息技术有限公司 | 任务调度方法、装置及电子设备 |
CN114756356A (zh) * | 2022-06-14 | 2022-07-15 | 恒生电子股份有限公司 | 任务处理方法、工作节点设备、主节点设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770402A (zh) * | 2008-12-29 | 2010-07-07 | 中国移动通信集团公司 | MapReduce系统中的Map任务调度方法、设备及系统 |
CN108121599A (zh) * | 2016-11-30 | 2018-06-05 | 杭州海康威视数字技术股份有限公司 | 一种资源管理方法、装置及系统 |
CN108255589A (zh) * | 2017-08-29 | 2018-07-06 | 平安科技(深圳)有限公司 | 任务调度方法及服务器 |
CN110928655A (zh) * | 2019-11-11 | 2020-03-27 | 深圳前海微众银行股份有限公司 | 一种任务处理方法及装置 |
CN111221632A (zh) * | 2019-10-15 | 2020-06-02 | 中国平安财产保险股份有限公司 | 分布式并行任务调度方法、装置、计算机设备和存储介质 |
-
2020
- 2020-08-05 CN CN202010779507.7A patent/CN111858012A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770402A (zh) * | 2008-12-29 | 2010-07-07 | 中国移动通信集团公司 | MapReduce系统中的Map任务调度方法、设备及系统 |
CN108121599A (zh) * | 2016-11-30 | 2018-06-05 | 杭州海康威视数字技术股份有限公司 | 一种资源管理方法、装置及系统 |
CN108255589A (zh) * | 2017-08-29 | 2018-07-06 | 平安科技(深圳)有限公司 | 任务调度方法及服务器 |
CN111221632A (zh) * | 2019-10-15 | 2020-06-02 | 中国平安财产保险股份有限公司 | 分布式并行任务调度方法、装置、计算机设备和存储介质 |
CN110928655A (zh) * | 2019-11-11 | 2020-03-27 | 深圳前海微众银行股份有限公司 | 一种任务处理方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220441A (zh) * | 2021-07-01 | 2021-08-06 | 北京轻松筹信息技术有限公司 | 任务调度方法、装置及电子设备 |
CN113220441B (zh) * | 2021-07-01 | 2021-10-08 | 北京轻松筹信息技术有限公司 | 任务调度方法、装置及电子设备 |
CN114756356A (zh) * | 2022-06-14 | 2022-07-15 | 恒生电子股份有限公司 | 任务处理方法、工作节点设备、主节点设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105100259B (zh) | 一种分布式定时任务执行方法和系统 | |
WO2022007552A1 (zh) | 处理节点的管理方法、配置方法及相关装置 | |
CN106921754B (zh) | 集群系统的负载均衡方法、装置、介质和电子设备 | |
US20110138195A1 (en) | Power management apparatus and method thereof and power control system | |
CN111858012A (zh) | 一种任务调度方法、装置、设备及介质 | |
Lopez et al. | Stacksync: Bringing elasticity to dropbox-like file synchronization | |
CN113452774B (zh) | 消息推送方法、装置、设备及存储介质 | |
CN111625497A (zh) | 一种分布式文件系统的部署方法、装置、设备及存储介质 | |
US20220070099A1 (en) | Method, electronic device and computer program product of load balancing | |
CN112231108A (zh) | 任务处理方法、装置、计算机可读存储介质及服务器 | |
CN113434282A (zh) | 流计算任务的发布、输出控制方法及装置 | |
CN114900449B (zh) | 一种资源信息管理方法、系统及装置 | |
CN115756783A (zh) | 跨子系统的空间任务依赖调度方法与系统 | |
CN113342893B (zh) | 基于区块链的节点同步方法、装置、存储介质及服务器 | |
CN113535398B (zh) | 资源分配调整方法、装置、电子设备和可读存储介质 | |
CN108287747A (zh) | 用于虚拟机备份的方法和设备 | |
US9575865B2 (en) | Information processing system and monitoring method | |
CN116775420A (zh) | 基于Flink流计算的信创云平台资源展示和预警方法及系统 | |
Toeroe et al. | Managing application level elasticity and availability | |
US20150244780A1 (en) | System, method and computing apparatus to manage process in cloud infrastructure | |
CN115858667A (zh) | 用于同步数据的方法、装置、设备和存储介质 | |
CN111431951B (zh) | 一种数据处理方法、节点设备、系统及存储介质 | |
Leite et al. | Autonomic provisioning, configuration, and management of inter-cloud environments based on a software product line engineering method | |
CN112667437A (zh) | 一种多副本分布式集群恢复方法、装置、设备及存储介质 | |
CN110825529B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201030 |