CN111459666A - 任务派发方法、装置、任务执行系统和服务器 - Google Patents
任务派发方法、装置、任务执行系统和服务器 Download PDFInfo
- Publication number
- CN111459666A CN111459666A CN202010226220.1A CN202010226220A CN111459666A CN 111459666 A CN111459666 A CN 111459666A CN 202010226220 A CN202010226220 A CN 202010226220A CN 111459666 A CN111459666 A CN 111459666A
- Authority
- CN
- China
- Prior art keywords
- dispatched
- task
- dispatching
- tasks
- tenant
- 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
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开实施例提供了一种任务派发方法、装置、任务执行系统和服务器,涉及云计算领域,该方法首先获取目标租户的待派发任务;该目标租户与第一派发节点相对应;将该待派发任务放入预设的待派发队列中,以供第一派发节点或除该第一派发节点以外的派发节点将待派发任务派发至任务执行器。本发明中每个派发节点分别管理相应的目标租户,可将相应的目标租户的待派发任务放入待派发队列中,所有派发节点可派发待派发队列中的所有待派发任务,相对于一个派发节点派发所有租户的任务的方式,该方式可以将派发任务的压力分散至各个派发节点,即使在任务量较大时,分散至各个派发节点的压力也较小,从而保证任务调度系统的平稳运行,提高了任务的派发效率。
Description
技术领域
本发明涉及任务调度技术领域,尤其是涉及一种任务派发方法、装置、任务执行系统和服务器。
背景技术
相关技术中,任务调度系统通常是通过派发节点将任务派发至执行节点,且同一时间只有一个派发节点可以派发任务,该方式可以避免多个派发节点间的任务派发冲突,且操作简单,但是当任务量增大时,某一时间点上的派发节点的压力突增,容易达到该派发节点的性能瓶颈,导致整个任务调度系统故障,从而影响任务的派发效率。
发明内容
本发明的目的在于提供一种任务派发方法、装置、任务执行系统和服务器,以提高任务派发的效率。
第一方面,本发明实施例提供一种任务派发方法,该方法应用于第一派发节点;该方法包括:获取目标租户的待派发任务;其中,该目标租户与第一派发节点相对应;将该待派发任务放入预设的待派发队列中,以供第一派发节点或除第一派发节点以外的派发节点将待派发任务派发至任务执行器。
在可选的实施方式中,上述获取目标租户的待派发任务的步骤之前,上述方法还包括:从预设的租户池中,获取目标租户;其中,该租户池中包括至少一个租户,每个租户被第一派发节点或除第一派发节点以外的一个派发节点获取。
在可选的实施方式中,上述将待派发任务放入预设的待派发队列中的步骤之后,该方法还包括:将目标租户放入租户池中,以供第一派发节点或除第一派发节点以外的派发节点从租户池中获取目标租户。
在可选的实施方式中,上述目标租户预设有作业就绪队列;该作业就绪队列用于保存目标租户的待派发任务;上述获取目标租户的待派发任务的步骤,包括:从作业就绪队列中获取目标租户的待派发任务。
在可选的实施方式中,上述作业就绪队列中保存的待派发任务,携带有待派发任务的优先级;其中,该优先级通过Redis服务中的优先级配置指令设置。
在可选的实施方式中,上述优先级配置指令包括zset指令或list指令设置。
在可选的实施方式中,上述将待派发任务放入预设的待派发队列中的步骤之后,该方法还包括:判断待派发任务是否符合预设的派发条件;如果不符合派发条件,将待派发任务退回至目标租户。
在可选的实施方式中,上述预设的派发条件包括:待派发任务的资源占用量小于或者等于系统剩余可用资源,且当前正在派发的待派发任务的个数小于或者等于系统剩余的能够同时派发的待派发任务的个数。
在可选的实施方式中,上述目标租户预设有派发记录队列;该派发记录队列用于保存目标租户的已派发任务,以及该已派发任务的资源占用量;上述方法还包括:如果符合派发条件,将待派发任务放入目标租户的派发记录队列中。
在可选的实施方式中,上述方法还包括:如果从待派发队列中获取到任务,将获取到的任务放入预设的已派发队列中,以使任务执行器从已派发队列中获取任务,并执行获取到的任务。
第二方面,本发明实施例提供一种任务派发装置,该装置设置于第一派发节点;该装置包括:任务获取模块,用于获取目标租户的待派发任务;其中,该目标租户与第一派发节点相对应;任务派发模块,用于将待派发任务放入预设的待派发队列中,以供第一派发节点或除第一派发节点以外的派发节点将待派发任务派发至任务执行器。
在可选的实施方式中,上述装置还包括目标租户确定模块,用于:从预设的租户池中,获取目标租户;其中,租户池中包括至少一个租户,每个租户被第一派发节点或第一派发节点以外的一个派发节点获取。
在可选的实施方式中,上述装置还包括租户回放模块,用于:将目标租户放入租户池中,以供第一派发节点或除第一派发节点以外的派发节点从租户池中获取目标租户。
在可选的实施方式中,上述目标租户预设有作业就绪队列;该作业就绪队列用于保存目标租户的待派发任务;上述任务获取模块,用于:从作业就绪队列中获取目标租户的待派发任务。
在可选的实施方式中,上述作业就绪队列中保存的待派发任务,携带有待派发任务的优先级;其中,该优先级通过Redis服务中的优先级配置指令设置。
在可选的实施方式中,上述优先级配置指令包括zset指令或list指令。
在可选的实施方式中,上述装置还包括派发判断模块,用于:判断待派发任务是否符合预设的派发条件;如果不符合派发条件,将待派发任务退回至目标租户。
在可选的实施方式中,上述预设的派发条件包括:待派发任务的资源占用量小于或者等于系统的剩余可用资源,且当前正在派发的待派发任务的个数小于或者等于系统剩余的能够同时派发的待派发任务的个数。
在可选的实施方式中,上述目标租户预设有派发记录队列;该派发记录队列用于保存目标租户的已派发任务,以及已派发任务的资源占用量;上述派发判断模块,还用于:如果符合派发条件,将待派发任务放入目标租户的派发记录队列中。
在可选的实施方式中,上述装置还包括派发任务获取模块,用于:如果从待派发队列中获取到任务,将获取到的任务放入预设的已派发队列中,以使任务执行器从已派发队列中获取任务,并执行获取到的任务。
第三方面,本发明实施例提供一种任务执行系统,该系统包括多个任务执行器和多个派发节点;每个派发节点与多个任务执行器通信连接;该派发节点用于:获取目标租户的待派发任务;其中,目标租户与派发节点相对应;将待派发任务放入预设的待派发队列中,以供派发节点或多个派发节点中除派发节点以外的派发节点将待派发任务派发至任务执行器;任务执行器用于:执行该待派发任务。
第四方面,本发明实施例提供一种服务器,包括处理器和存储器,该存储器存储有能够被处理器执行的机器可执行指令,该处理器执行机器可执行指令以实现上述任务派发方法。
第五方面,实施例提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使处理器实现上述任务派发方法。
本发明实施例带来了以下有益效果:
本发明提供了一种任务派发方法、装置、任务执行系统和服务器,首先获取目标租户的待派发任务;其中,目标租户与第一派发节点相对应;然后将该待派发任务放入预设的待派发队列中,以供第一派发节点或除该第一派发节点以外的派发节点将待派发任务派发至任务执行器。本发明中每个派发节点分别管理相应的目标租户,可以将相应的目标租户的待派发任务放入待派发队列中,所有派发节点可派发待派发队列中的所有待派发任务,该方式可以将多个租户的待派发任务分散至各个派发节点分别管理,相对于一个派发节点派发所有租户的任务的方式,该方式可以将派发任务的压力分散至各个派发节点,即使在任务量整体较大时,分散至各个派发节点的压力也较小,从而保证任务调度系统的平稳运行,提高了任务的派发效率。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的相关技术中的任务派发场景的结构示意图;
图2为本发明实施例提供的一种任务派发方法的流程图;
图3为本发明实施例提供的另一种任务派发方法的流程图;
图4为本发明实施例提供的另一种任务派发方法的流程图;
图5为本发明实施例提供的一种任务派发装置的结构示意图;
图6为本发明实施例提供的一种任务执行系统的结构示意图;
图7为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在调度系统中,任务派发是很重要的功能,任务派发也即是从多个待选的任务执行节点中按某种策略选出合适的执行节点执行任务。相关技术中,任务调度系统中的任务派发通常是通过派发节点将任务派发至执行节点,且同一时间只有一个主派发节点可以派发任务,如图1所示为相关技术中的任务派发场景。例如,elastic-job、xxl-job等常见的任务调度系统,通过如ZooKeeper之类的分布式协调组件实现动态选主功能,选择出某一时间派发任务的主派发节点,由该主派发节点进行任务派发。该方式可以避免多个派发节点间的任务派发冲突,且操作简单,但是当任务量增大时,某一时间点上的派发节点的压力突增,容易达到该派发节点的性能瓶颈,导致整个任务调度系统故障,从而影响任务的派发效率。
基于此,本发明实施例提供了一种任务派发方法、装置、任务执行系统和服务器,该技术可以应用于业务规模比较大的私有云或公有云下的任务派发场景中。为了便于对本发明实施例进行理解,首先对本发明实施例所公开的一种任务派发方法进行详细介绍,如图2所示,该方法应用于第一派发节点,该方法包括如下具体步骤:
步骤S202,获取目标租户的待派发任务;其中,该目标租户与第一派发节点相对应。
上述第一派发节点通常是任务调度系统中多个派发节点中的任意一个。该第一派发节点通常是一个服务器,也可以是服务器上的一个服务进程。每个派发节点都有其对应的目标租户,其中,每个派发节点可以对应有一个或者多个目标租户,每个派发节点对应的目标租户不同,且同一个目标租户只能对应一个派发节点。上述目标租户通常是指使用某公司云环境的客户,该客户可以是一个项目组、工作组、公司等。
上述第一派发节点可以获取到其对应的目标租户的待派发任务,该待派发任务可以是租户通过终端设备发送的计算、存储等任务。在具体实现时,第一派发节点可以从目标租户对应的终端设备上获取待派发任务,也可以接收目标租户发送的待派发任务。由于每个派发节点分管不同的目标租户,在多个派发节点同时获取待派发任务时,可以避免不同派发节点同时获取同一租户的待派发任务时的冲突现象。
步骤S204,将上述待派发任务放入预设的待派发队列中,以供第一派发节点或除第一派发节点以外的派发节点将待派发任务派发至任务执行器。
上述待派发队列通常采用MQ(Message Queue,消息队列)对应的数据结构存放待派发任务,该MQ消息队列可以看成是一个存放传输数据的容器,该传输数据也即是待派发任务。该MQ消息队列通常是一种异步的服务间通信方式,也是分布式系统中重要的组件,可以解决应用耦合、异步消息、流量削锋等问题;它也是实现高性能、高可用、可伸缩和最终一致性的架构,MQ消息队列通常有RocketMQ、RabbitMQ、Kafka等形式。
在具体实现时,所有的派发节点均订阅待派发队列,以使每个派发节点均可以派发待派发队列中的任意一个待派发任务,也可以理解为第一派发节点不仅可以派发待派发队列中的与其相应的目标租户的待派发任务,还可以派发待派发队列中的与除第一派发节点以外的派发节点相应的目标租户的待派发任务。
通常可以采用订阅MQ下的主题(topic)的方式,使所有的派发节点订阅待派发队列。上述订阅MQ下的topic的方式通常是每个派发节点将获取的到待派发任务放入topic下的消息队列中,所有订阅该topic的派发节点可以从该topic下的消息队列中获取到任意一个待派发任务。在具体实现时,所有的派发节点可以订阅相同的topic,以使所有的派发节点可以派发待派发队列中的所有待派发任务。
在派发的过程中,如果某一个待派发任务已经被派发,在待派发队列中可以将已派发的待派发任务标记为“已派发”,以防止该待派发任务被重复派发,且该方式可以是实现多个派发节点同时派发,从而提高了任务派发的派发效率。
本发明提供了一种任务派发方法,首先获取目标租户的待派发任务;其中,目标租户与第一派发节点相对应;然后将该待派发任务放入预设的待派发队列中,以供第一派发节点或除该第一派发节点以外的派发节点将待派发任务派发至任务执行器。本发明中每个派发节点分别管理相应的目标租户,可以将相应的目标租户的待派发任务放入待派发队列中,所有派发节点可派发待派发队列中的所有待派发任务,该方式可以将多个租户的待派发任务分散至各个派发节点分别管理,相对于一个派发节点派发所有租户的任务的方式,该方式可以将派发任务的压力分散至各个派发节点,即使在任务量整体较大时,分散至各个派发节点的压力也较小,从而保证任务调度系统的平稳运行,提高了任务的派发效率。
本发明实施例还提供了另一种任务派发方法,该方法在上述实施例方法的基础上实现;该方法重点描述获取目标租户的待派发任务的具体过程(通过下述步骤S304实现);如图3所示,该方法包括如下具体步骤:
步骤S302,从预设的租户池中,获取目标租户;其中,目标租户预设有作业就绪队列,该作业就绪队列用于保存目标租户的待派发任务;该租户池中包括至少一个租户,每个租户被第一派发节点或除第一派发节点以外的一个派发节点获取。
上述预设的租户池通常是通过Redis(Remote Dictionary Server,远程字典服务)对租户进行池化,得到租户池。上述Redis通常是一个key-value存储系统,该Redis还支持不同方式的排序。上述租户池中保存有所有的租户,所有派发节点从该租户池中争夺租户资源,也即是每个派发节点从该租户池中获取相应的目标租户,每个派发节点可以获取到一个或者多个租户,且每个租户只能被一个派发节点获取到。例如,租户池中有6个租户,分别用T1、T2、T3、T4、T5、T6表示,任务调度系统中有3个派发节点,那么第一派发节点对应的目标租户可以是T1和T3,第二派发节点对应的目标租户可以是T6,第三派发节点对应的租户为T2、T4和T5。
上述目标租户预设有作业就绪队列,该作业就绪队列用于保存目标租户的待派发任务。通常每个租户都对应有相应的作业就绪队列,该作业就绪队列可以采用Redis对应的数据结构保存目标租户对应的待派发任务,该数据结构依靠Redis内存中操作数据的优势,又提供一些列实用独特的接口操控数据、使用简便、速度快,且能实现特有的数据特征排序读写等。
在具体实现时,上述作业就绪队列中保存的待派发任务,携带有待派发任务的优先级;其中,该优先级通过Redis服务中的优先级配置指令设置。该优先级配置指令可以是zset指令或list指令。
上述待派发任务的优先级可以表征待派发任务派发的顺序,通常会优先派发优先级高的待派发任务。在具体实现时,可以根据Redis服务中的zset指令或list指令设置在作业就绪队列中设置待派发任务的优先级。
当采用zset指令时,作业就绪队列可采用zset数据结构,该zset数据结构与集合相似,且在集合的基础上增加了顺序属性。该顺序属性在添加待派发队列时的可以指定优先级,每次指定优先级后,zset会自动重新调整队列中任务的顺序,也可以理解为在作业就绪队列中有两列表,一列存待派发任务,一列存该待派发任务对应的优先级。
当采用list指令时,作业就绪队列可采用list数据结构,该list数据结构通常是一个链表结构,该作业就绪队列中可以包括多个list数据结构的列表,每个列表对应一个优先级,例如,待派发任务的优先级分5级,作业就绪队列中有五个list数据结构的列表,分别存储不同的优先级的待派发任务。
步骤S304,从上述作业就绪队列中获取目标租户的待派发任务。
在派发节点从作业就绪队列中获取待派发任务时,通常优先获取优先级别高的待派发任务,以使派发节点可以优先派发优先级高的待派发任务,从而可以优先执行该待派发任务,可以提升租户的体验感。
步骤S306,将上述待派发任务放入预设的待派发队列中,以供第一派发节点或除第一派发节点以外的派发节点将待派发任务派发至任务执行器。
在具体实现时,第一派发节点将待派发任务放入预设的待派发队列中后,该方法还包括:将目标租户放入租户池中,以供第一派发节点或除第一派发节点以外的派发节点从租户池中获取目标租户。
每个派发节点获取到的目标租户是动态变化的,也即是当派发节点将目标租户的待派发任务放入到待派发队列后,该派发节点会把该目标租户放回至租户池中。当派发节点下一次派发任务时,可以再次从该租户池中获取租户,获取到的租户可能是上述目标租户,也可能是除目标租户之外的其他租户,从而可以合理、高效的派发每个租户的待派发任务。
上述任务派发方法,首先从预设的租户池中,获取目标租户;再从目标租户对应的作业就绪队列中获取目标租户的待派发任务;然后将该待派发任务放入预设的待派发队列中,以供第一派发节点或除第一派发节点以外的派发节点将待派发任务派发至任务执行器。该方式中每个派发节点分别管理相应的目标租户,避免了多个派发节点同时派发一个租户的待派发任务时的冲突现象,同时由于所有的派发节点可同时派发待派发队列中的待派发任务,因此该方式不存在单个派发节点压力突增的现象,保证了任务调度系统正常运行,从而提高了任务派发的效率。
本发明实施例还提供了另一种任务派发方法,该方法在上述实施例方法的基础上实现;该方法重点描述将上述待派发任务放入预设的待派发队列之后的具体派发过程;如图4所示,该方法包括如下具体步骤:
步骤S402,获取目标租户的待派发任务;其中,该目标租户与第一派发节点相对应。
步骤S404,将上述待派发任务放入预设的待派发队列中。
步骤S406,判断上述待派发任务是否符合预设的派发条件;如果不符合该派发条件,执行步骤S408;如果符合派发条件,执行步骤S410。
通常通过业务逻辑判断待派发任务是否符合预设的派发条件,该业务逻辑定义了完成一个动作,必须满足的条件,也即是定义了派发任务时,需要满足的派发条件。上述业务逻辑通常保存在预设的数据库中,该数据库可以采用Redis数据库中的string数据类型保存业务逻辑,其中,string通常为字符串,为最简单的数据类型。上述业务逻辑可以包括系统的剩余可用资源、系统剩余的能够同时派发的待派发任务的个数等;该系统的剩余可用资源也可称为逻辑资源组可以包括多种类型的剩余可用资源,例如,Oracle连接的剩余量、内存剩余量等;该系统剩余的能够同时派发的待派发任务的个数,可以是指当前时刻系统允许多个派发节点可同时派发的待派发任务的数量。
在具体实现时,不同待派发任务需要用到的业务逻辑可能相同也可能不同,例如,待派发任务1需要用到的Oracle连接数为10个,待派发任务2需要用到的Oracle连接为20个。
上述预设的派发条件包括:待派发任务的资源占用量小于或者等于系统的剩余可用资源,且当前正在派发的待派发任务的个数小于或者等于系统剩余的能够同时派发的待派发任务的个数。
只有待派发任务满足上述派发条件时,才可以对待派发队列中的任务进行派发,当待派发任务派发完成后需要根据该待派发任务的资源占用量,更新上述预设数据库中的业务逻辑。例如,假设系统的剩余可以资源量为100,系统剩余的能够同时派发的待派发任务的个数为20,待派发任务的资源占用量为40,此时派发节点正在派发的任务的个数为10,那么派发节点可以派发该待派发任务,该待派发任务派发完成后,预设数据库中的剩余可用资源量更新为60。
步骤S408,将上述待派发任务退回至目标租户。
在具体实现时,如果待派发任务不符合派发条件,将该待派发任务退回至目标租户对应的作业就绪队列中,以等待派发节点重新将该待派发任务从作业就绪队列中取出,放入待派发队列中。
步骤S410,将上述待派发任务放入目标租户的派发记录队列中;其中,目标租户预设有派发记录队列,该派发记录队列用于保存目标租户的已派发任务,以及已派发任务的资源占用量。
上述派发记录队列通常采用Redis的list数据结构,通常每个租户对应有一个派发记录队列,该派发记录队列可以根据记录目标租户的已派发任务,以及该已派发任务的资源占用量,可以统计已派发任务总的资源占用量,也可以将统计结果与数据库中的业务逻辑中的剩余可用资源进行比对,以确保数据可中记录的剩余可用资源的准确性。
步骤S412,将上述派发记录队列中的待派发任务放入已派发队列中,以供第一派发节点或除第一派发节点以外的派发节点将待派发任务派发至任务执行器。
上述待派发记录队列记录完成后,派发节点将记录的待派发任务派发至已派发队列中,以使所有的派发节点可以将已派发队列中的待派发任务派发至任务执行器。上述已派发队列可以采用MQ对应的数据结构存放待派发任务。
在一些实施例中,如果从待派发队列中获取到任务,将获取到的任务放入预设的已派发队列中,以使任务执行器从已派发队列中获取任务,并执行获取到的任务。在具体实现时,任务执行器可以订阅已派发队列中的任务,以使该任务执行器可以主动从已派发队列中获取待执行任务,并执行获取的该待执行任务。
上述任务派发方法,首先获取目标租户的待派发任务;再将该待派发任务放入预设的待派发队列中,进而判断该待派发任务是否符合预设的派发条件;如果不符合该派发条件,将该待派发任务退回至目标租户;如果符合派发条件,将该待派发任务放入目标租户的派发记录队列中,然后将派发记录队列中的待派发任务放入已派发队列中,以供第一派发节点或除第一派发节点以外的派发节点将待派发任务派发至任务执行器。该方式可以实现多个派发节点并行派发任务,在任务量大的情况下,仍能有较高的派发效率。
对应于上述任务派发方法的实施例,本发明实施例还提供了一种任务派发装置,该装置设置于第一派发节点;如图5所示,该装置包括:
任务获取模块50,用于获取目标租户的待派发任务;其中,该目标租户与第一派发节点相对应。
任务派发模块51,用于将待派发任务放入预设的待派发队列中,以供第一派发节点或除第一派发节点以外的派发节点将待派发任务派发至任务执行器。
上述任务派发装置,首先获取目标租户的待派发任务;其中,目标租户与第一派发节点相对应;然后将该待派发任务放入预设的待派发队列中,以供第一派发节点或除该第一派发节点以外的派发节点将待派发任务派发至任务执行器。该方式中每个派发节点分别管理相应的目标租户,可以将相应的目标租户的待派发任务放入待派发队列中,所有派发节点可派发待派发队列中的所有待派发任务,该方式可以将多个租户的待派发任务分散至各个派发节点分别管理,相对于一个派发节点派发所有租户的任务的方式,该方式可以将派发任务的压力分散至各个派发节点,即使在任务量整体较大时,分散至各个派发节点的压力也较小,从而保证任务调度系统的平稳运行,提高了任务的派发效率。
进一步地,上述装置还包括目标租户确定模块,用于从预设的租户池中,获取目标租户;其中,该租户池中包括至少一个租户,每个租户被第一派发节点或除第一派发节点以外的一个派发节点获取。
进一步地,上述装置还包括租户回放模块,用于:将目标租户放入租户池中,以供第一派发节点或述第一派发节点以外的派发节点从租户池中获取目标租户。
具体地,上述目标租户预设有作业就绪队列;该作业就绪队列用于保存目标租户的待派发任务;上述任务获取模块50,用于:从作业就绪队列中获取目标租户的待派发任务。
上述作业就绪队列中保存的待派发任务,携带有待派发任务的优先级;其中,该优先级通过Redis服务中的优先级配置指令设置。
在具体实现时,上述优先级配置指令包括zset指令或list指令。
上述装置还包括派发判断模块,用于:判断待派发任务是否符合预设的派发条件;如果不符合派发条件,将待派发任务退回至目标租户。
上述预设的派发条件包括:待派发任务的资源占用量小于或者等于系统的剩余可用资源,且当前正在派发的待派发任务的个数小于或者等于系统剩余的能够同时派发的待派发任务的个数。
在具体实现时,上述目标租户预设有派发记录队列;该派发记录队列用于保存目标租户的已派发任务,以及已派发任务的资源占用量;上述派发判断模块,还用于:如果符合派发条件,将待派发任务放入目标租户的派发记录队列中。
进一步地,上述装置还包括派发任务获取模块,用于:如果从待派发队列中获取到任务,将获取到的任务放入预设的已派发队列中,以使任务执行器从已派发队列中获取任务,并执行获取到的任务。
本发明实施例所提供的任务派发装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
对应于上述任务派发方法的实施例,本发明实施例还提供了一种任务执行系统,如图6所示,该系统包括多个任务执行器60和多个派发节点61;每个派发节点61与多个任务执行器60通信连接。
上述派发节点61用于:获取目标租户的待派发任务;其中,该目标租户与派发节点相对应;将待派发任务放入预设的待派发队列中,以供派发节点或多个派发节点中除派发节点以外的派发节点将待派发任务派发至任务执行器60。
上述任务执行器60用于:执行该待派发任务。
上述任务执行系统,包括多个任务执行器和多个派发节点,其中,派发节点用于获取目标租户的待派发任务,并将将待派发任务放入预设的待派发队列中,以供派发节点或多个派发节点中除派发节点以外的派发节点将待派发任务派发至任务执行器;任务执行器用于执行该待派发任务。该系统中的派发节点通过分管不同租户,可以实现多个派发节点同时派发任务,从而提高了任务派发和执行的效率;同时该系统可满足海量任务派发的需求,而且该系统的能力可以通过加入新的实例轻松实现现行扩展。
本发明实施例还提供了一种服务器,参见图7所示,该服务器包括处理器101和存储器100,该存储器100存储有能够被处理器101执行的机器可执行指令,该处理器101执行机器可执行指令以实现上述任务派发方法。
进一步地,图7所示的服务器还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。
其中,存储器100可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述任务派发方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和/或电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (23)
1.一种任务派发方法,其特征在于,所述方法应用于第一派发节点;所述方法包括:
获取目标租户的待派发任务;其中,所述目标租户与所述第一派发节点相对应;
将所述待派发任务放入预设的待派发队列中,以供所述第一派发节点或除所述第一派发节点以外的派发节点将所述待派发任务派发至任务执行器。
2.根据权利要求1所述的方法,其特征在于,所述获取目标租户的待派发任务的步骤之前,所述方法还包括:从预设的租户池中,获取目标租户;其中,所述租户池中包括至少一个租户,每个所述租户被所述第一派发节点或所述第一派发节点以外的一个派发节点获取。
3.根据权利要求1所述的方法,其特征在于,所述将所述待派发任务放入预设的待派发队列中的步骤之后,所述方法还包括:
将所述目标租户放入所述租户池中,以供所述第一派发节点或除所述第一派发节点以外的派发节点从租户池中获取所述目标租户。
4.根据权利要求1所述的方法,其特征在于,所述目标租户预设有作业就绪队列;所述作业就绪队列用于保存所述目标租户的待派发任务;
所述获取目标租户的待派发任务的步骤,包括:从所述作业就绪队列中获取所述目标租户的待派发任务。
5.根据权利要求4所述的方法,其特征在于,所述作业就绪队列中保存的待派发任务,携带有所述待派发任务的优先级;其中,所述优先级通过Redis服务中的优先级配置指令设置。
6.根据权利要求5所述的方法,其特征在于,所述优先级配置指令包括zset指令或list指令。
7.根据权利要求1所述的方法,其特征在于,所述将所述待派发任务放入预设的待派发队列中的步骤之后,所述方法还包括:
判断所述待派发任务是否符合预设的派发条件;
如果不符合所述派发条件,将所述待派发任务退回至所述目标租户。
8.根据权利要求7所述的方法,其特征在于,所述预设的派发条件包括:所述待派发任务的资源占用量小于或者等于系统的剩余可用资源,且当前正在派发的所述待派发任务的个数小于或者等于所述系统剩余的能够同时派发的所述待派发任务的个数。
9.根据权利要求7所述的方法,其特征在于,所述目标租户预设有派发记录队列;所述派发记录队列用于保存所述目标租户的已派发任务,以及所述已派发任务的资源占用量;
所述方法还包括:如果符合所述派发条件,将所述待派发任务放入所述目标租户的派发记录队列中。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果从所述待派发队列中获取到任务,将获取到的任务放入预设的已派发队列中,以使任务执行器从所述已派发队列中获取任务,并执行获取到的任务。
11.一种任务派发装置,其特征在于,所述装置设置于第一派发节点;所述装置包括:
任务获取模块,用于获取目标租户的待派发任务;其中,所述目标租户与所述第一派发节点相对应;
任务派发模块,用于将所述待派发任务放入预设的待派发队列中,以供所述第一派发节点或所述第一派发节点以外的派发节点将所述待派发任务派发至任务执行器。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括目标租户确定模块,用于:从预设的租户池中,获取目标租户;其中,所述租户池中包括至少一个租户,每个所述租户被所述第一派发节点或所述第一派发节点以外的一个派发节点获取。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括租户回放模块,用于:
将所述目标租户放入所述租户池中,以供所述第一派发节点或除所述第一派发节点以外的派发节点从租户池中获取所述目标租户。
14.根据权利要求11所述的装置,其特征在于,所述目标租户预设有作业就绪队列;所述作业就绪队列用于保存所述目标租户的待派发任务;
所述任务获取模块,用于:从所述作业就绪队列中获取所述目标租户的待派发任务。
15.根据权利要求14所述的装置,其特征在于,所述作业就绪队列中保存的待派发任务,携带有所述待派发任务的优先级;其中,所述优先级通过Redis服务中的优先级配置指令设置。
16.根据权利要求15所述的装置,其特征在于,所述优先级配置指令包括zset指令或list指令。
17.根据权利要求11所述的装置,其特征在于,所述装置还包括派发判断模块,用于:
判断所述待派发任务是否符合预设的派发条件;
如果不符合所述派发条件,将所述待派发任务退回至所述目标租户。
18.根据权利要求17所述的装置,其特征在于,所述预设的派发条件包括:所述待派发任务的资源占用量小于或者等于系统的剩余可用资源,且当前正在派发的所述待派发任务的个数小于或者等于所述系统剩余的能够同时派发的所述待派发任务的个数。
19.根据权利要求17所述的装置,其特征在于,所述目标租户预设有派发记录队列;所述派发记录队列用于保存所述目标租户的已派发任务,以及所述已派发任务的资源占用量;
所述派发判断模块,还用于:如果符合所述派发条件,将所述待派发任务放入所述目标租户的派发记录队列中。
20.根据权利要求11所述的装置,其特征在于,所述装置还包括派发任务获取模块,用于:
如果从所述待派发队列中获取到任务,将获取到的任务放入预设的已派发队列中,以使任务执行器从所述已派发队列中获取任务,并执行获取到的任务。
21.一种任务执行系统,其特征在于,所述系统包括多个任务执行器和多个派发节点;每个所述派发节点与所述多个任务执行器通信连接;
所述派发节点用于:获取目标租户的待派发任务;其中,所述目标租户与所述派发节点相对应;将所述待派发任务放入预设的待派发队列中,以供所述派发节点或所述多个派发节点中所述派发节点以外的派发节点将所述待派发任务派发至任务执行器;
所述任务执行器用于:执行所述待派发任务。
22.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-10任一项所述的任务派发方法。
23.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使处理器实现权利要求1-10任一项所述的任务派发方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010226220.1A CN111459666A (zh) | 2020-03-26 | 2020-03-26 | 任务派发方法、装置、任务执行系统和服务器 |
PCT/CN2021/071014 WO2021190088A1 (zh) | 2020-03-26 | 2021-01-11 | 任务派发方法、装置、任务执行系统和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010226220.1A CN111459666A (zh) | 2020-03-26 | 2020-03-26 | 任务派发方法、装置、任务执行系统和服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111459666A true CN111459666A (zh) | 2020-07-28 |
Family
ID=71678918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010226220.1A Pending CN111459666A (zh) | 2020-03-26 | 2020-03-26 | 任务派发方法、装置、任务执行系统和服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111459666A (zh) |
WO (1) | WO2021190088A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112365114A (zh) * | 2020-08-24 | 2021-02-12 | 南方电网数字电网研究院有限公司 | 一种基于运维管理平台的电力作业计划管理方法 |
WO2021190088A1 (zh) * | 2020-03-26 | 2021-09-30 | 北京金山云网络技术有限公司 | 任务派发方法、装置、任务执行系统和服务器 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050097556A1 (en) * | 2003-10-30 | 2005-05-05 | Alcatel | Intelligent scheduler for multi-level exhaustive scheduling |
US20090094605A1 (en) * | 2007-10-09 | 2009-04-09 | International Business Machines Corporation | Method, system and program products for a dynamic, hierarchical reporting framework in a network job scheduler |
US20150120928A1 (en) * | 2013-10-24 | 2015-04-30 | Vmware, Inc. | Container virtual machines for hadoop |
CN104820616A (zh) * | 2015-04-24 | 2015-08-05 | 中国联合网络通信集团有限公司 | 一种任务调度的方法及装置 |
CN105824699A (zh) * | 2015-01-06 | 2016-08-03 | 中国移动通信集团山东有限公司 | 一种分布式任务调度装置及方法 |
CN106909451A (zh) * | 2017-02-28 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种分布式任务调度系统及方法 |
CN107025136A (zh) * | 2016-01-29 | 2017-08-08 | 中兴通讯股份有限公司 | 一种去中心化资源调度方法及系统 |
CN107590002A (zh) * | 2017-09-15 | 2018-01-16 | 东软集团股份有限公司 | 任务分配方法、装置、存储介质、设备及分布式任务系统 |
CN108769254A (zh) * | 2018-06-25 | 2018-11-06 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN109298897A (zh) * | 2018-06-29 | 2019-02-01 | 杭州数澜科技有限公司 | 一种采用资源组的任务分发的系统和方法 |
CN109564528A (zh) * | 2017-07-06 | 2019-04-02 | 华为技术有限公司 | 分布式计算中计算资源分配的系统和方法 |
CN109992403A (zh) * | 2017-12-30 | 2019-07-09 | 中国移动通信集团福建有限公司 | 多租户资源调度的优化方法、装置、终端设备及存储介质 |
CN110825535A (zh) * | 2019-10-12 | 2020-02-21 | 中国建设银行股份有限公司 | 一种作业调度的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459666A (zh) * | 2020-03-26 | 2020-07-28 | 北京金山云网络技术有限公司 | 任务派发方法、装置、任务执行系统和服务器 |
-
2020
- 2020-03-26 CN CN202010226220.1A patent/CN111459666A/zh active Pending
-
2021
- 2021-01-11 WO PCT/CN2021/071014 patent/WO2021190088A1/zh active Application Filing
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050097556A1 (en) * | 2003-10-30 | 2005-05-05 | Alcatel | Intelligent scheduler for multi-level exhaustive scheduling |
US20090094605A1 (en) * | 2007-10-09 | 2009-04-09 | International Business Machines Corporation | Method, system and program products for a dynamic, hierarchical reporting framework in a network job scheduler |
US20150120928A1 (en) * | 2013-10-24 | 2015-04-30 | Vmware, Inc. | Container virtual machines for hadoop |
CN105824699A (zh) * | 2015-01-06 | 2016-08-03 | 中国移动通信集团山东有限公司 | 一种分布式任务调度装置及方法 |
CN104820616A (zh) * | 2015-04-24 | 2015-08-05 | 中国联合网络通信集团有限公司 | 一种任务调度的方法及装置 |
CN107025136A (zh) * | 2016-01-29 | 2017-08-08 | 中兴通讯股份有限公司 | 一种去中心化资源调度方法及系统 |
CN106909451A (zh) * | 2017-02-28 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种分布式任务调度系统及方法 |
CN109564528A (zh) * | 2017-07-06 | 2019-04-02 | 华为技术有限公司 | 分布式计算中计算资源分配的系统和方法 |
CN107590002A (zh) * | 2017-09-15 | 2018-01-16 | 东软集团股份有限公司 | 任务分配方法、装置、存储介质、设备及分布式任务系统 |
CN109992403A (zh) * | 2017-12-30 | 2019-07-09 | 中国移动通信集团福建有限公司 | 多租户资源调度的优化方法、装置、终端设备及存储介质 |
CN108769254A (zh) * | 2018-06-25 | 2018-11-06 | 星环信息科技(上海)有限公司 | 基于抢占式调度的资源共享使用方法、系统及设备 |
CN109298897A (zh) * | 2018-06-29 | 2019-02-01 | 杭州数澜科技有限公司 | 一种采用资源组的任务分发的系统和方法 |
CN110825535A (zh) * | 2019-10-12 | 2020-02-21 | 中国建设银行股份有限公司 | 一种作业调度的方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021190088A1 (zh) * | 2020-03-26 | 2021-09-30 | 北京金山云网络技术有限公司 | 任务派发方法、装置、任务执行系统和服务器 |
CN112365114A (zh) * | 2020-08-24 | 2021-02-12 | 南方电网数字电网研究院有限公司 | 一种基于运维管理平台的电力作业计划管理方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021190088A1 (zh) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
CN107241281B (zh) | 一种数据处理方法及其装置 | |
WO2017166643A1 (zh) | 一种任务资源的量化方法和装置 | |
CN109800204B (zh) | 数据分配方法及相关产品 | |
CN111427694A (zh) | 任务执行方法、装置、系统和服务器 | |
CN110599148B (zh) | 集群数据处理方法、装置、计算机集群及可读存储介质 | |
CN111459666A (zh) | 任务派发方法、装置、任务执行系统和服务器 | |
CN114629960B (zh) | 资源调度方法、装置、系统、设备、介质和程序产品 | |
CN109388501B (zh) | 基于人脸识别请求的通信匹配方法、装置、设备及介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
CN116820729A (zh) | 离线任务调度方法、装置及电子设备 | |
CN106571935B (zh) | 一种资源调度的方法与设备 | |
CN111008071A (zh) | 任务调度系统、方法和服务器 | |
CN116069500A (zh) | 一种模型训练任务处理方法、装置、电子设备及可读介质 | |
CN111913784A (zh) | 任务调度方法及装置、网元、存储介质 | |
CN115766582A (zh) | 流量控制方法、装置和系统、介质和计算机设备 | |
CN115202842A (zh) | 任务调度方法及装置 | |
CN113672347A (zh) | 一种容器组调度方法及装置 | |
CN108718285B (zh) | 云计算集群的流量控制方法、装置及服务器 | |
CN112616143A (zh) | 一种分配通信号码的方法、装置、电子设备及存储介质 | |
CN112541038A (zh) | 时序数据管理方法、系统、计算设备及存储介质 | |
CN111694670A (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
CN114546279B (zh) | Io请求预测方法、装置、存储节点及可读存储介质 | |
CN117376373B (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 |