CN113886089B - 一种任务处理方法、装置、系统、设备及介质 - Google Patents
一种任务处理方法、装置、系统、设备及介质 Download PDFInfo
- Publication number
- CN113886089B CN113886089B CN202111226127.1A CN202111226127A CN113886089B CN 113886089 B CN113886089 B CN 113886089B CN 202111226127 A CN202111226127 A CN 202111226127A CN 113886089 B CN113886089 B CN 113886089B
- Authority
- CN
- China
- Prior art keywords
- task
- task processing
- data
- target
- processing
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 533
- 238000000034 method Methods 0.000 claims abstract description 17
- 238000013467 fragmentation Methods 0.000 claims abstract description 9
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 9
- 230000011218 segmentation Effects 0.000 claims abstract description 9
- 238000000638 solvent extraction Methods 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 59
- 230000008569 process Effects 0.000 description 10
- 238000011084 recovery Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 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]
- 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/5044—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 hardware capabilities
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种任务处理方法、装置、设备及介质,应用于计算机技术领域,用以解决现有技术通过分布式任务处理系统处理任务时存在的部分资源闲置的问题。具体为:接收任务处理平台发送的任务处理指令;从内存数据库中获得任务处理指令对应的目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理。这样,通过按照与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略对目标任务进行分片并分配至相应的任务处理节点进行处理,可以确保各个任务处理节点的空闲硬件资源的充分利用,有效地避免了部分硬件资源闲置的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务处理方法、装置、系统、设备及介质。
背景技术
随着大数据时代的到来,数据规模越来越大,数据结构也越来越复杂,传统的单机任务处理系统已经无法满足大数据对计算性能的要求,为此,分布式架构的任务处理系统应运而生,相比于单机任务处理系统,分布式任务处理系统在大数据处理效率上有所提升。
然而,目前的分布式任务处理系统在利用各个任务处理节点处理任务时,通常会因为各个任务处理节点的硬件性能不均衡,导致高性能的任务处理节点优先完成任务处理,从而造成部分资源闲置,无法充分利用分布式任务处理系统的处理资源。
发明内容
本申请实施例提供了一种任务处理方法、装置、系统、设备及介质,用以解决现有技术通过分布式任务处理系统处理任务时存在的部分资源闲置的问题。
本申请实施例提供的技术方案如下:
一方面,本申请实施例提供了一种任务处理方法,包括:
接收任务处理指令;
从内存数据库中获得任务处理指令对应的目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理。
另一方面,本申请实施例提供了一种任务处理装置,包括:
指令接收单元,用于接收任务处理指令;
任务分配单元,用于从内存数据库中获得任务处理指令对应的目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理。
另一方面,本申请实施例提供了一种任务处理系统,包括:
任务处理平台,用于接收任务处理指令;
任务管理服务器,用于获取任务处理指令对应的目标任务,并将目标任务发布至任务调度服务器;
任务调度服务器,用于从内存数据库中获得目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点;
各个任务处理节点,用于处理所述任务调度服务器分配的子任务。
另一方面,本申请实施例提供了一种任务处理设备,包括:存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现本申请实施例提供的任务处理方法。
另一方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现本申请实施例提供的任务处理方法。
本申请实施例的有益效果如下:
本申请实施例中,通过按照与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略对目标任务进行分片,使得分片后得到的各个子任务能够适配各个任务处理节点的空闲硬件资源,从而在将各个子任务并分配至相应的任务处理节点进行处理时,能够确保各个任务处理节点的空闲硬件资源的充分利用,进而有效地避免了部分硬件资源闲置的问题,而且,通过将任务锁存储在内存数据库中,并从内存数据库中获取目标任务的任务锁,不仅能够降低访问硬件数据库的频率和性能开销,还可以有效地避免因硬件数据库故障导致整个任务处理系统不可用的问题,从而可以提高任务处理系统的稳定性和可靠性。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地可以从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中任务处理系统的系统框架示意图;
图2为本申请实施例中任务处理方法的概况流程示意图;
图3为本申请实施例中目标任务的任务状态变更示意图;
图4为本申请实施例中任务处理方法的交互流程示意图;
图5为本申请实施例中任务处理装置的功能结构示意图;
图6为本申请实施例中任务处理设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于本领域技术人员更好地理解本申请,下面先对本申请涉及的技术用语进行简单介绍。
1、任务处理系统,为基于Spring Cloud微服务架构的分布式任务处理系统。
2、硬件资源,为各个任务处理节点等任务处理服务器处理任务时占用的处理资源,包括但不限于中央处理器(Central Processing Unit,CPU)核等。
3、任务锁,为用于实现有且仅有一个线程执行一个任务的一种技术,可以通过标志位来实现。
4、任务分片策略,为对目标任务进行分片的策略。本申请实施例中,任务分片策略包括但不限于固定分片策略和智能分片策略;其中:
固定分片策略,为按照任务分片大小或任务处理节点数量,将目标任务的待处理数据划分成数据量相同的各个数据块的策略;
智能分片策略,为按照各个任务处理节点的空闲硬件资源,将目标任务的待处理数据划分成数据量适配于各个任务处理节点的空闲硬件资源的数据块的策略。
5、分片条件,为可以对目标任务进行分片的条件,本申请实施例中,分片条件可以是目标任务的待处理数据的数据量不小于设定阈值,即目标任务为复杂任务。实际应用中,当目标任务的待处理数据的数据量不小于设定阈值时,即目标任务为复杂任务时,再对目标任务进行分片,而当目标任务的待处理数据的数据量小于设定阈值时,即目标任务为简单任务时,可以不对目标任务进行分片,直接对目标任务进行分配。
在介绍了本申请涉及的技术用语后,接下来,对本申请实施例的应用场景和设计思想进行简单介绍。
目前,任务处理系统针对待处理的目标任务,通常是从硬盘数据库中尝试获取目标任务的任务锁,确定从硬盘数据库中获得目标任务的任务锁时,将目标任务的待处理数据划分成数据量相同的各个数据块作为子任务并分别分配至各个任务处理节点进行处理,这种任务处理方法强依赖硬盘数据库的可用性,一旦硬盘数据库挂掉,将导致整个任务处理系统不可用,存在硬盘数据库单点问题,任务处理系统的稳定性和可靠性较差,而且,由于需要频繁访问硬件数据库获取任务锁,导致任务处理系统的性能开销比较大,此外,在各个任务处理节点的空闲硬件资源不均衡的情况下,还会出现高性能的任务处理节点优先处理完任务,导致部分硬件资源闲置的问题。
为此,本申请实施例中,任务处理系统针对待处理的目标任务,从内存数据库中尝试获取目标任务的任务锁,确定从内存数据库中获得目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理。这样,通过按照与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略对目标任务进行分片,使得分片后得到的各个子任务能够适配各个任务处理节点的空闲硬件资源,从而在将各个子任务并分配至相应的任务处理节点进行处理时,能够确保各个任务处理节点的空闲硬件资源的充分利用,进而有效地避免了部分硬件资源闲置的问题,而且,通过将任务锁存储在内存数据库中,并从内存数据库中获取目标任务的任务锁,不仅能够降低访问硬件数据库的频率和性能开销,还可以有效地避免因硬件数据库故障导致整个任务处理系统不可用的问题,从而可以提高任务处理系统的稳定性和可靠性。
在介绍了本申请实施例的应用场景和设计思想之后,下面对本申请实施例提供的技术方案进行详细说明。
首先,对本申请实施例提供的任务处理系统的系统架构进行简单介绍,如图1所示,本申请实施例提供的任务处理系统100可以包括但不限于接入层、服务层和存储层三层结构;其中:
接入层,用于实现用户交互,包括任务处理平台11,实际应用中,任务处理平台11可以包括用于提供任务配置、任务创建、任务中断和恢复、任务失败重试和任务进度查看等服务的任务管理平台111,以及用于提供任务分片大小配置、任务分片策略选择配置、任务调度和任务处理服务的硬件性能监控等服务的任务调度平台112,还可以包括用于实现与服务层的通信连接的Nginx通信中心113;
服务层,用于实现任务管理、任务调度和任务处理,包括用于提供任务管理服务的任务管理服务器21(包括主节点和各个从节点,主节点进行任务管理,从节点备用)、用于提供任务调度服务的任务调度服务器22(包括主节点和各个从节点,主节点进行任务调度,从节点备用)、用于提供任务处理服务的各个任务处理节点23,还可以包括基础服务组件24和Spring Cloud服务组件25,实际应用中,基础服务组件24包括用于提供日志服务的日志中心241、用于提供消息通知服务的消息中心242、用于提供异常监控服务、硬件状态监控服务的监控中心243等,Spring Cloud服务组件25包括用于提供软硬件配置和系统配置的Config配置中心251、用于提供集群注册服务的Eureka注册中心252、用于提供超时熔断服务的Hystrix熔断服务中心253、用于实现与接入层的通信连接的Zuul网关254、用于实现任务管理服务器21与任务调度服务器22之间的通信连接以及各个任务处理节点23与基础服务组件24之间的通信连接的Feign通信中心255、用于实现任务调度服务器22与各个任务处理节点23之间的通信连接的Akka-remote通信中心256等;
存储层,用于实现数据存储,包括用于存储任务锁、目标任务的各个子任务的当前处理状态和当前进度数据等数据的内存数据库31(例如,Redis内存数据库和MQ内存数据库等),用于存储目标任务的待处理数据等业务数据的硬盘数据库32(例如,Mysql数据库和Mongodb数据库等),以及用于存储目标任务的消息队列33。
接下来,结合如图1所示的任务处理系统的系统架构,对本申请实施例提供的任务处理系统100包含的各层结构的功能进行详细说明,具体的,本申请实施例提供的任务处理系统100中:
任务处理平台11,用于接收任务处理指令;
任务管理服务器21,用于获取任务处理指令对应的目标任务,并将目标任务发布至任务调度服务器22;
任务调度服务器22,用于从内存数据库中获得目标任务的任务锁时,基于与各个任务处理节点23的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点23;
各个任务处理节点23,用于处理任务调度服务器22分配的子任务。
在一种可能实施的方式中,任务调度服务器22,还用于确定目标任务的待处理数据的数据量满足分片条件时,基于与各个任务处理节点23的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片。
在一种可能实施的方式中,任务调度服务器22,还用于确定目标任务的待处理数据的数据量不满足分片条件时,将目标任务分配至各个任务处理节点23中空闲硬件资源满足设定条件的任务处理节点23进行处理。
在一种可能实施的方式中,任务调度服务器22,具体用于将目标任务分配至各个任务处理节点23中空闲硬件资源最多的任务处理节点23进行处理。
在一种可能实施的方式中,任务调度服务器22,具体用于确定各个任务处理节点23的空闲硬件资源的均衡程度达到设定阈值时,基于固定分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点23进行处理;确定各个任务处理节点23的空闲硬件资源的均衡程度未达到设定阈值时,基于智能分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点23进行处理。
在一种可能实施的方式中,任务调度服务器22,具体用于按照各个任务处理节点23的数量,将目标任务的待处理数据划分成数据量相同的各个数据块;基于各个数据块生成各个子任务,并分别将各个子任务分配至各个任务处理节点23进行处理。
在一种可能实施的方式中,任务调度服务器22,具体用于按照各个任务处理节点23的空闲硬件资源,将目标任务的待处理数据划分成数据量适配于各个任务处理节点23的空闲硬件资源的各个数据块;基于各个数据块生成各个子任务,并分别将各个子任务分配至各个子任务各自对应的任务处理节点23进行处理。
在一种可能实施的方式中,任务处理平台11,还用于接收任务处理指令之后,在内存数据库中创建将该任务处理指令对应的目标任务,并将该目标任务的任务状态确定为未执行。
在一种可能实施的方式中,任务处理平台11,还用于接收任务处理指令之后,将该任务处理指令对应的目标任务加入至消息队列;
任务调度服务器22,还用于从消息队列中获取任务处理指令对应的目标任务。
在一种可能实施的方式中,任务处理平台11,还用于将任务处理指令对应的目标任务加入至消息队列之后,将内存数据库中存储的目标任务的任务状态从未执行修改为执行中。
在一种可能实施的方式中,各个任务处理节点23,还用于将处理的目标任务的子任务的当前处理状态和当前进度数据存储在内存数据库中;
任务处理平台11,还用于基于各个任务处理节点23存储在内存数据库中的目标任务的各个子任务的当前处理状态和当前进度数据,确定目标任务的各个子任务中存在处理失败的子任务时,将内存数据库中存储的目标任务的任务状态从执行中修改为部分失败;
任务管理服务器21,还用于基于各个任务处理节点23存储在内存数据库中的目标任务的各个子任务的当前处理状态和当前进度数据,确定目标任务的各个子任务中存在处理失败的子任务时,释放内存数据库中存储的目标任务的任务锁。
在一种可能实施的方式中,任务管理服务器21,还用于接收任务处理平台11针对目标任务的各个子任务中处理失败的子任务发送的任务重试指令,并将任务重试指令转发至任务调度服务器22;
任务调度服务器22,还用于接收到任务管理服务器21转发的任务重试指令时,控制处理失败的子任务对应的任务处理节点重新执行处理失败的子任务。
在一种可能实施的方式中,任务管理服务器21,还用于基于各个任务处理节点23存储在内存数据库中的各个子任务的当前处理状态和当前进度数据,确定各个子任务处理完毕时,将内存数据库中存储的目标任务的任务状态从执行中修改为全部成功,并释放内存数据库中存储的目标任务的任务锁。
在一种可能实施的方式中,任务管理服务器21,还用于接收任务处理平台11针对目标任务发送的任务中断指令,并将该任务中断指令转发至任务调度服务器22;
任务调度服务器22,还用于接收到任务管理服务器21转发的任务中断指令时,控制各个任务处理节点23中断对目标任务的各个子任务的处理,并将内存数据库中存储的目标任务的任务状态从执行中修改为中断停止。
在一种可能实施的方式中,任务管理服务器21,还用于接收任务处理平台11针对目标任务发送的任务恢复指令,并将该任务恢复指令转发至任务调度服务器22;
任务调度服务器22,还用于接收到任务管理服务器21转发的任务恢复指令时,控制各个任务处理节点23基于内存数据库中存储的目标任务的各个子任务的中断位置记录,恢复对目标任务的各个子任务的处理,并将内存数据库中存储的目标任务的任务状态从中断停止修改为执行中。
在一种可能实施的方式中,各个任务处理节点23,还用于向任务调度服务器22发送的心跳数据;
任务调度服务器22,还用于基于各个任务处理节点23发送的心跳数据,确定各个任务处理节点23中存在硬件状态异常的任务处理节点23时,重新分配硬件状态异常的任务处理节点23处理的子任务。
基于如图1所示的任务处理系统,本申请实施例提供了一种任务处理方法,参阅图2所示,本申请实施例提供的任务处理方法的概况流程如下:
步骤201:接收任务处理指令。
实际应用中,用户可以在任务处理平台11上发起任务处理指令,具体的,用户可以在任务处理平台11包含的任务管理平台111上发起任务处理指令,任务管理平台111接收到用户发起的任务处理指令后,参阅图3所示,可以在内存数据库中创建该任务处理指令对应的目标任务,并将目标任务的任务状态确定为未执行,同时,任务管理平台111还可以将目标任务加入消息队列,进一步的,参阅图3所示,任务管理平台111还可以将内存数据库中存储的目标任务的任务状态从未执行修改为执行中。
步骤202:从内存数据库中获得目标任务的任务锁时,基于与各个任务处理节点23的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点23进行处理。
实际应用中,任务管理服务器21可以实时或定期从消息队列中获取目标任务,并将获得的目标任务发布至任务调度服务器22,任务调度服务器22接收到任务管理服务器21发布的目标任务后,可以尝试从内存数据库中获取目标任务的任务锁,确定获得目标任务的任务锁时,可以先判断目标任务的待处理数据的数据量是否满足分片条件,例如,判断目标任务的待处理数据的数据量是否不小于设定阈值;确定目标任务的待处理数据的数据量小于设定阈值时,可以进一步确定目标任务为简单任务,即确定目标任务的待处理数据的数据量不满足分片条件,此种情况下,任务调度服务器22可以将目标任务分配至各个任务处理节点23中空闲硬件资源满足设定条件的任务处理节点23进行处理,例如,将目标任务分配至各个任务处理节点中23空闲硬件资源最多的任务处理节点23进行处理;而确定目标任务的待处理数据的数据量不小于设定阈值时,可以进一步确定目标任务为复杂任务,即确定目标任务的待处理数据的数据量满足分片条件,此种情况下,任务调度服务器22可以基于与各个任务处理节点23的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片。
实际应用中,任务调度服务器22基于与各个任务处理节点23的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片时,可能存在但不限于以下两种情况:
第一种情况:各个任务处理节点23的空闲硬件资源的均衡程度达到设定阈值。
此种情况下,任务调度服务器22可以确定各个任务处理节点23的空闲硬件资源处于均衡状态,进一步的,任务调度服务器22可以基于固定分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点23进行处理。在具体实施时,任务调度服务器22可以按照各个任务处理节点23的数量,将目标任务的待处理数据划分成数据量相同的各个数据块,基于各个数据块生成各个子任务后,分别将各个子任务分配至各个任务处理节点23进行处理。
第二种情况:各个任务处理节点23的空闲硬件资源的均衡程度未达到设定阈值。
此种情况下,任务调度服务器22可以确定各个任务处理节点23的空闲硬件资源处于不均衡状态,进一步的,任务调度服务器22可以基于智能分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点23进行处理。在具体实施时,任务调度服务器22可以按照各个任务处理节点23的空闲硬件资源,将目标任务的待处理数据划分成数据量适配于各个任务处理节点23的空闲硬件资源的各个数据块,基于各个数据块生成各个子任务后,分别将各个子任务分配至各个子任务各自对应的任务处理节点23进行处理。
例如:假设各个任务处理节点的数量为M,各个任务处理节点中的每个CPU所能处理的数据量为N,目标任务的待处理数据的数据量为S,则任务调度服务器22可以循环执行以下步骤,直至目标任务的待处理数据的数据量为0:
步骤1,任务调度服务器22从M个任务处理节点中随机选取3个任务处理节点,比如任务处理节点A、任务处理节点B和任务处理节点C,其中,任务处理节点A、任务处理节点B和任务处理节点C中的CPU核数分别为A、B、C(A>=B>=C);
步骤2,任务调度服务器22基于任务处理节点A、任务处理节点B和任务处理节点C的CPU核数,从目标任务的待处理数据中,为任务处理节点A、任务处理节点B和任务处理节点C划分子任务进行处理,具体的,可能存在但不限于以下三种情况:
第一种情况:当S>=N*(A+B+C)时,任务调度服务器22可以按照任务处理节点A、任务处理节点B和任务处理节点C各自对应的CPU核数,对目标任务的待处理数据进行划分,得到任务处理节点A、任务处理节点B和任务处理节点C各自对应的数据块作为子任务后分别分配至任务处理节点A、任务处理节点B和任务处理节点C进行处理;
第二种情况:当S<C*N时,任务调度服务器22可以将目标任务的待处理数据作为子任务全部分配至任务处理节点A进行处理;
第三种情况:当C*N<=S<=N*(A+B+C)时,任务调度服务器22可以采用但不限于以下方式:
当A>=(B+C)时,若S>=A*N,则从目标任务的待处理数据中划分出数据量为A*N的数据块作为子任务分配给任务处理节点A进行处理,进一步从剩余数据量为S-A*N的待处理数据中划分出B*N作为子任务分配给任务处理节点B进行处理,进一步从剩余数据量为S-A*N-B*N的待处理数据中划分出C*N作为子任务分配给任务处理节点C进行处理;若S<A*N,则将目标任务的待处理数据作为子任务全部分配给任务处理节点A进行处理;
当A<(B+C)时,若S>(B+C)*N时,则从目标任务的待处理数据中划分出数据量为B*N的数据块作为子任务分配给任务处理节点B进行处理,进一步从剩余数据量为S-B*N的待处理数据中划分出C*N作为子任务分配给任务处理节点C进行处理,进一步从剩余数据量为S-B*N-C*N的待处理数据中划分出A*N作为子任务分配给任务处理节点A进行处理;若A*N<=S<=(B+C)*N,则从目标任务的待处理数据中划分出数据量为B*N的数据块作为子任务分配给任务处理节点B进行处理,进一步从剩余数据量为S-B*N的待处理数据中划分出C*N作为子任务分配给任务处理节点C进行处理;若S<A*N,则将目标任务的待处理数据作为子任务全部分配给任务处理节点A进行处理;
步骤3,任务调度服务器22将任务处理节点A、任务处理节点B和任务处理节点C的分配状态设置为已分配,并在确定目标任务的待处理数据的剩余数据量不为0时,进一步确定分配状态为未分配的任务处理节点的数量不小于3时,返回步骤1;确定分配状态为未分配的任务处理节点的数量小于3时,比如分配状态为未分配的任务处理节点的数量为2,即任务处理节点D和任务处理节点E且任务处理节点D和任务处理节点E中的CPU核数分别为D、E(D>=E),则从目标任务的剩余的待处理数据中划分出数据量为D*N的数据块作为子任务分配至任务处理节点D,进一步从目标任务的剩余的待处理数据中划分出数据量为E*N的数据块作为子任务分配至任务处理节点E,又如分配状态为未分配的任务处理节点的数量为1,即任务处理节点F且任务处理节点F中的CPU核数分别为F,则从目标任务的剩余的待处理数据中划分出数据量为F*N的数据块作为子任务分配至任务处理节点F;确定分配状态为未分配的任务处理节点的数为0时,重置所有任务处理节点的分配状态为未分配,并返回步骤1。
进一步的,各个任务处理节点23接收到任务调度服务器22分配的目标任务的子任务时,可以尝试从内存数据库中获取子任务的任务锁,确定获得子任务的任务锁时,开始处理该子任务,并在处理子任务的过程中,将子任务的当前处理状态和当前进度数据存储到内存数据库中,进一步的,任务调度服务器22基于各个任务处理节点23存储在内存数据库中的目标任务的各个子任务的当前处理状态和当前进度数据,确定目标任务的各个子任务中存在处理失败的子任务时,释放内存数据库中存储的目标任务的任务锁。
此外,本申请实施例中,参阅图3所示,任务处理平台11包含的任务管理平台111基于各个任务处理节点23存储在内存数据库中的目标任务的各个子任务的当前处理状态和当前进度数据,确定目标任务的各个子任务中存在处理失败的子任务时,将内存数据库中存储的目标任务的任务状态从执行中修改为部分失败。
实际应用中,任务处理平台11包含的任务管理平台111还可以向用户显示表征目标任务的各个子任务中存在处理失败的子任务的任务处理结果,并在接收到用户针对目标任务的各个子任务中处理失败的子任务发起的任务重试指令时,将该任务重试指令发送至任务管理服务器21,任务管理服务器21接收到该任务重试指令时,将该任务重试指令转发至任务调度服务器22,通过任务调度服务器22控制处理失败的子任务对应的任务处理节点23重新执行该处理失败的子任务。
当然,任务调度服务器22基于各个任务处理节点23存储在内存数据库中的各个子任务的当前处理状态和当前进度数据,确定各个子任务处理完毕时,也会释放内存数据库中存储的目标任务的任务锁。
此外,本申请实施例中,参阅图3所示,任务处理平台11包含的任务管理平台111基于各个任务处理节点23存储在内存数据库中的各个子任务的当前处理状态和当前进度数据,确定各个子任务处理完毕时,可以将内存数据库中存储的目标任务的任务状态从执行中修改为全部成功。
值得说的是,本申请实施例中,在目标任务处理过程中,用户可以通过任务处理平台11包含的任务管理平台111发起任务中断指令,任务处理平台11包含的任务管理平台111接收到用户发起的任务中断指令时,参阅图3所示,将内存数据库中存储的目标任务的任务状态从执行中修改为中断停止,同时,任务处理平台11包含的任务管理平台111还可以将该任务中断指令发送至任务管理服务器21,任务管理服务器21接收到该任务中断指令时,将该任务中断指令转发至任务调度服务器22,通过任务调度服务器22控制各个任务处理节点23中断对目标任务的各个子任务的处理。
进一步的,用户还可以通过任务处理平台11包含的任务管理平台111发起任务恢复指令,任务处理平台11包含的任务管理平台111接收到用户发起的任务恢复指令时,参阅图3所示,将内存数据库中存储的目标任务的任务状态从中断停止修改为执行中,同时,任务处理平台11包含的任务管理平台111还可以将该任务恢复指令发送至任务管理服务器21,任务管理服务器21接收到该任务恢复指令时,将该任务恢复指令转发至任务调度服务器22,通过任务调度服务器22控制各个任务处理节点23基于内存数据库中存储的目标任务的各个子任务的中断位置记录,恢复对目标任务的各个子任务的处理。
实际应用中,为了实现对各个任务处理节点23的状态监控,各个任务处理节点23还可以向任务管理服务器21发送心跳数据,任务管理服务器21基于各个任务处理节点23发送的心跳数据,确定各个任务处理节点23中存在硬件状态异常的任务处理节点23时,重新分配硬件状态异常的任务处理节点23处理的子任务。
值得说的是,本申请实施例中,用户还可以通过任务处理平台11包含的任务调度平台112发起性能查看指令,任务调度平台112接收到用户发起的性能查看指令时,获取各个任务处理节点23的硬件状态并显示给用户,以供用户对各个任务处理节点23的硬件状态进行监控。
下面结合如图1所示的任务处理系统的系统架构,对本申请实施例提供的任务处理方法进行详细说明,参阅图4所示,本申请实施例提供的任务处理方法的交互流程如下:
步骤401:任务管理平台111接收用户发起的任务处理指令。
步骤402:任务管理平台111在内存数据库中创建该任务处理指令对应的目标任务,并将目标任务的任务状态确定为未执行。
步骤403:任务管理平台111将目标任务加入消息队列,并将内存数据库中存储的目标任务的任务状态从未执行修改为执行中。
步骤404:任务管理服务器21从消息队列中获取目标任务。
步骤405:任务管理服务器21将获得的目标任务发布至任务调度服务器22。
步骤406:任务调度服务器22从内存数据库中获得目标任务的任务锁时,基于目标任务的待处理数据的数据量,判断目标任务是否为简单任务;若是,则执行步骤407;若否,则执行步骤408。
步骤407:任务调度服务器22将目标任务分配至各个任务处理节点中23空闲硬件资源最多的任务处理节点23进行处理。
步骤408:任务调度服务器22判断各个任务处理节点23的空闲硬件资源的均衡程度达到设定阈值;若是,则执行步骤409;若否,则执行步骤410。
步骤409:任务调度服务器22按照各个任务处理节点23的数量,将目标任务的待处理数据划分成数据量相同的各个数据块。
步骤410:任务调度服务器22按照各个任务处理节点23的空闲硬件资源,将目标任务的待处理数据划分成数据量适配于各个任务处理节点23的空闲硬件资源的各个数据块。
步骤411:任务调度服务器22基于各个数据块生成各个子任务,并分别将各个子任务分配至相应的任务处理节点23。
步骤412:各个任务处理节点23接收到任务调度服务器22分配的目标任务的子任务后,从内存数据库中获得子任务的任务锁时,开始处理该子任务。
步骤413:各个任务处理节点23在处理子任务的过程中,将子任务的当前处理状态和当前进度数据存储到内存数据库中。
步骤414:任务调度服务器22基于各个任务处理节点23存储在内存数据库中的目标任务的各个子任务的当前处理状态和当前进度数据,确定目标任务的各个子任务中存在处理失败的子任务时,释放内存数据库中存储的目标任务的任务锁。
步骤415:任务管理平台111基于各个任务处理节点23存储在内存数据库中的目标任务的各个子任务的当前处理状态和当前进度数据,确定目标任务的各个子任务中存在处理失败的子任务时,将内存数据库中存储的目标任务的任务状态从执行中修改为部分失败。
步骤416:任务管理平台111向用户显示表征目标任务的各个子任务中存在处理失败的子任务的任务处理结果。
步骤417:任务管理平台111接收用户针对目标任务的各个子任务中处理失败的子任务发起的任务重试指令。
步骤418:任务管理平台111将该任务重试指令发送至任务管理服务器21。
步骤419:任务管理服务器21将该任务重试指令转发至任务调度服务器22。
步骤420:任务调度服务器22控制处理失败的子任务对应的任务处理节点23重新执行该处理失败的子任务。
步骤421:任务调度服务器22基于各个任务处理节点23存储在内存数据库中的各个子任务的当前处理状态和当前进度数据,确定各个子任务处理完毕时,释放内存数据库中存储的目标任务的任务锁。
步骤422:任务管理平台111基于各个任务处理节点23存储在内存数据库中的各个子任务的当前处理状态和当前进度数据,确定各个子任务处理完毕时,将内存数据库中存储的目标任务的任务状态从执行中修改为全部成功。
步骤423:任务管理平台111接收到用户发起的任务中断指令时,将内存数据库中存储的目标任务的任务状态从执行中修改为中断停止。
步骤424:任务管理平台111将该任务中断指令发送至任务管理服务器21。
步骤425:任务管理服务器21接收到该任务中断指令时,将该任务中断指令转发至任务调度服务器22。
步骤426:任务调度服务器22控制各个任务处理节点23中断对目标任务的各个子任务的处理。
步骤427:任务管理平台111接收到用户发起的任务恢复指令时,将内存数据库中存储的目标任务的任务状态从中断停止修改为执行中。
步骤428:任务管理平台111将该任务恢复指令发送至任务管理服务器21。
步骤429:任务管理服务器21接收到该任务恢复指令时,将该任务恢复指令转发至任务调度服务器22。
步骤430:任务调度服务器22控制各个任务处理节点23基于内存数据库中存储的目标任务的各个子任务的中断位置记录,恢复对目标任务的各个子任务的处理。
步骤431:各个任务处理节点23向任务管理服务器21发送心跳数据。
步骤432:任务管理服务器21基于各个任务处理节点23发送的心跳数据,确定各个任务处理节点23中存在硬件状态异常的任务处理节点23时,重新分配硬件状态异常的任务处理节点23处理的子任务。
步骤433:任务调度平台112接收到用户发起的性能查看指令时,获取各个任务处理节点23的硬件状态。
步骤434:任务调度平台112将各个任务处理节点23的硬件状态显示给用户,以供用户对各个任务处理节点23的硬件状态进行监控。
基于上述实施例,本申请实施例还提供了一种任务处理装置,参阅图5所示,本申请实施例提供的任务处理装置500至少包括:
指令接收单元501,用于接收任务处理指令;
任务分配单元502,用于从内存数据库中获得任务处理指令对应的目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理。
在一种可能的实施方式中,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片之前,任务分配单元502还用于:
确定目标任务的待处理数据的数据量满足分片条件。
在一种可能的实施方式中,任务分配单元502还用于:
确定目标任务的待处理数据的数据量不满足分片条件时,将目标任务分配至各个任务处理节点中空闲硬件资源满足设定条件的任务处理节点进行处理。
在一种可能的实施方式中,将目标任务分配至各个任务处理节点中空闲硬件资源满足设定条件的任务处理节点进行处理时,任务分配单元502具体用于:
将目标任务分配至各个任务处理节点中空闲硬件资源最多的任务处理节点进行处理。
在一种可能的实施方式中,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理时,任务分配单元502具体用于:
确定各个任务处理节点的空闲硬件资源的均衡程度达到设定阈值时,基于固定分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理;
确定各个任务处理节点的空闲硬件资源的均衡程度未达到设定阈值时,基于智能分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理。
在一种可能的实施方式中,基于固定分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理时,任务分配单元502具体用于:
按照各个任务处理节点的数量,将目标任务的待处理数据划分成数据量相同的各个数据块;
基于各个数据块生成各个子任务,并分别将各个子任务分配至各个任务处理节点进行处理。
在一种可能的实施方式中,基于智能分片策略,对目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理时,任务分配单元502具体用于:
按照各个任务处理节点的空闲硬件资源,将目标任务的待处理数据划分成数据量适配于各个任务处理节点的空闲硬件资源的各个数据块;
基于各个数据块生成各个子任务,并分别将各个子任务分配至各个子任务各自对应的任务处理节点进行处理。
在一种可能的实施方式中,本申请实施例提供的任务处理装置500还包括:
状态更新单元503,用于在指令接收单元501接收任务处理指令之后,将任务处理指令对应的目标任务的任务状态确定为未执行并存储在内存数据库中。
在一种可能的实施方式中,本申请实施例提供的任务处理装置500还包括:
消息维护单元504,用于在指令接收单元501接收任务处理指令之后,将任务处理指令对应的目标任务加入至消息队列。
在一种可能的实施方式中,状态更新单元503还用于:
在消息维护单元504将任务处理指令对应的目标任务加入至消息队列之后,将内存数据库中存储的目标任务的任务状态从未执行修改为执行中。
在一种可能的实施方式中,状态更新单元503还用于:
基于各个任务处理节点存储在内存数据库中的目标任务的各个子任务的当前处理状态和当前进度数据,确定目标任务的各个子任务中存在处理失败的子任务时,将内存数据库中存储的目标任务的任务状态从执行中修改为部分失败。
在一种可能的实施方式中,任务分配单元502还用于:
基于各个任务处理节点存储在内存数据库中的目标任务的各个子任务的当前处理状态和当前进度数据,确定目标任务的各个子任务中存在处理失败的子任务时,释放内存数据库中存储的目标任务的任务锁。
在一种可能的实施方式中,本申请实施例提供的任务处理装置500还包括:
失败重试单元505,用于接收到任务处理平台针对目标任务的各个子任务中处理失败的子任务发送的任务重试指令时,控制处理失败的子任务对应的任务处理节点重新执行处理失败的子任务。
在一种可能的实施方式中,状态更新单元503还用于:
基于各个任务处理节点存储在内存数据库中的各个子任务的当前处理状态和当前进度数据,确定各个子任务处理完毕时,将内存数据库中存储的目标任务的任务状态从执行中修改为全部成功。
在一种可能的实施方式中,任务分配单元502还用于:
基于各个任务处理节点存储在内存数据库中的各个子任务的当前处理状态和当前进度数据,确定各个子任务处理完毕时,释放内存数据库中存储的目标任务的任务锁。
在一种可能的实施方式中,本申请实施例提供的任务处理装置500还包括:
中断处理单元506,用于接收到任务处理平台针对目标任务发送的任务中断指令时,控制各个任务处理节点中断对目标任务的各个子任务的处理。
在一种可能的实施方式中,状态更新单元503还用于:
将内存数据库中存储的目标任务的任务状态从执行中修改为中断停止。
在一种可能的实施方式中,本申请实施例提供的任务处理装置500还包括:
中断恢复单元507,用于接收到任务处理平台针对目标任务发送的任务恢复指令时,控制各个任务处理节点基于内存数据库中存储的目标任务的各个子任务的中断位置记录,恢复对目标任务的各个子任务的处理。
在一种可能的实施方式中,状态更新单元503还用于:
将内存数据库中存储的目标任务的任务状态从中断停止修改为执行中。
在一种可能的实施方式中,本申请实施例提供的任务处理装置500还包括:
心跳监测单元508,用于基于各个任务处理节点发送的心跳数据,确定各个任务处理节点中存在硬件状态异常的任务处理节点时,重新分配硬件状态异常的任务处理节点处理的子任务。
需要说明的是,本申请实施例提供的任务处理装置500解决技术问题的原理与本申请实施例提供的任务处理方法相似,因此,本申请实施例提供的任务处理装置500的实施可以参见本申请实施例提供的任务处理方法的实施,重复之处不再赘述。
在介绍了本申请实施例提供的任务处理方法和装置之后,接下来,对本申请实施例提供的任务处理设备进行简单介绍。
参阅图6所示,本申请实施例提供的任务处理设备600至少包括:处理器601、存储器602和存储在存储器602上并可在处理器601上运行的计算机程序,处理器601执行计算机程序时实现本申请实施例提供的任务处理方法。
本申请实施例提供的任务处理设备600还可以包括连接不同组件(包括处理器601和存储器602)的总线603。其中,总线603表示几类总线结构中的一种或多种,包括存储器总线、外围总线、局域总线等。
存储器602可以包括易失性存储器形式的可读介质,例如随机存储器(RandomAccess Memory,RAM)6021和/或高速缓存存储器6022,还可以进一步包括只读存储器(ReadOnly Memory,ROM)6023。
存储器602还可以包括具有一组(至少一个)程序模块6024的程序工具6025,程序模块6024包括但不限于:操作子系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
任务处理设备600也可以与一个或多个外部设备604(例如键盘、遥控器等)通信,还可以与一个或者多个使得用户能与任务处理设备600交互的设备通信(例如手机、电脑等),和/或,与使得任务处理设备600与一个或多个其它任务处理设备600进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口605进行。并且,任务处理设备600还可以通过网络适配器606与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器606通过总线603与任务处理设备600的其它模块通信。应当理解,尽管图6中未示出,可以结合任务处理设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)子系统、磁带驱动器以及数据备份存储子系统等。
需要说明的是,图6所示的任务处理设备600仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
接下来,对本申请实施例提供的计算机可读存储介质进行介绍。本申请实施例提供的计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现本申请实施例提供的任务处理方法。具体地,该计算机指令可以内置或者安装在任务处理设备600中,这样,任务处理设备600就可以通过执行内置或者安装的计算机指令实现本申请实施例提供的任务处理方法。
此外,本申请实施例提供的任务处理方法还可以实现为一种程序产品,该程序产品包括程序代码,当该程序产品可以在任务处理设备600上运行时,该程序代码用于使任务处理设备600执行本申请实施例提供的任务处理方法。
本申请实施例提供的程序产品可以采用一个或多个可读介质的任意组合,其中,可读介质可以是可读信号介质或者可读存储介质,而可读存储介质可以是但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合,具体地,可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、RAM、ROM、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、光纤、便携式紧凑盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请实施例提供的程序产品可以采用CD-ROM并包括程序代码,还可以在计算设备上运行。然而,本申请实施例提供的程序产品不限于此,在本申请实施例中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种任务处理方法,其特征在于,包括:
接收任务处理指令;
从内存数据库中获得所述任务处理指令对应的目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理;
其中,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理,包括:
确定所述各个任务处理节点的空闲硬件资源的均衡程度未达到设定阈值时,按照所述各个任务处理节点的空闲硬件资源,将所述目标任务的待处理数据划分成数据量适配于所述各个任务处理节点的空闲硬件资源的各个数据块;
基于所述各个数据块生成各个子任务,并分别将所述各个子任务分配至所述各个子任务各自对应的任务处理节点进行处理;
其中,按照所述各个任务处理节点的空闲硬件资源,将所述目标任务的待处理数据划分成数据量适配于所述各个任务处理节点的空闲硬件资源的各个数据块,包括循环执行以下步骤,直至所述目标任务的待处理数据的数据量为0:
步骤1,从所述各个任务处理节点中随机选取三个任务处理节点;
步骤2,基于所述三个任务处理节点的CPU核数,从所述目标任务的待处理数据中,分别为所述三个任务处理节点划分数据块;
步骤3,分别将所述三个任务处理节点的分配状态设置为已分配,并在确定所述目标任务的待处理数据的剩余数据量不为0时,若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数量不小于3,则返回步骤1;若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数量小于3,则按照CPU核数从大到小的顺序,基于分配状态为未分配的任务处理节点的CPU核数,从目标任务的剩余的待处理数据中,分别为分配状态为未分配的任务处理节点划分数据块;若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数为0,则重置所有任务处理节点的分配状态为未分配,并返回步骤1。
2.如权利要求1所述的任务处理方法,其特征在于,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理,还包括:
确定所述各个任务处理节点的空闲硬件资源的均衡程度达到设定阈值时,基于固定分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理。
3.如权利要求2所述的任务处理方法,其特征在于,基于固定分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理,包括:
按照所述各个任务处理节点的数量,将所述目标任务的待处理数据划分成数据量相同的各个数据块;
基于所述各个数据块生成各个子任务,并分别将所述各个子任务分配至所述各个任务处理节点进行处理。
4.如权利要求1-3任一项所述的任务处理方法,其特征在于,接收任务处理指令之后,还包括:
将所述任务处理指令对应的目标任务加入至消息队列。
5.如权利要求1-3任一项所述的任务处理方法,其特征在于,还包括:
基于所述各个任务处理节点发送的心跳数据,确定所述各个任务处理节点中存在硬件状态异常的任务处理节点时,重新分配所述硬件状态异常的任务处理节点处理的子任务。
6.一种任务处理装置,其特征在于,包括:
指令接收单元,用于接收任务处理指令;
任务分配单元,用于从内存数据库中获得所述任务处理指令对应的目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理;
其中,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理时,所述任务分配单元,具体用于确定所述各个任务处理节点的空闲硬件资源的均衡程度未达到设定阈值时,按照所述各个任务处理节点的空闲硬件资源,将所述目标任务的待处理数据划分成数据量适配于所述各个任务处理节点的空闲硬件资源的各个数据块;基于所述各个数据块生成各个子任务,并分别将所述各个子任务分配至所述各个子任务各自对应的任务处理节点进行处理;
其中,按照所述各个任务处理节点的空闲硬件资源,将所述目标任务的待处理数据划分成数据量适配于所述各个任务处理节点的空闲硬件资源的各个数据块时,所述任务分配单元,具体用于循环执行以下步骤,直至所述目标任务的待处理数据的数据量为0:
步骤1,从所述各个任务处理节点中随机选取三个任务处理节点;
步骤2,基于所述三个任务处理节点的CPU核数,从所述目标任务的待处理数据中,分别为所述三个任务处理节点划分数据块;
步骤3,分别将所述三个任务处理节点的分配状态设置为已分配,并在确定所述目标任务的待处理数据的剩余数据量不为0时,若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数量不小于3,则返回步骤1;若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数量小于3,则按照CPU核数从大到小的顺序,基于分配状态为未分配的任务处理节点的CPU核数,从目标任务的剩余的待处理数据中,分别为分配状态为未分配的任务处理节点划分数据块;若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数为0,则重置所有任务处理节点的分配状态为未分配,并返回步骤1。
7.一种任务处理系统,其特征在于,包括:
任务处理平台,用于接收任务处理指令;
任务管理服务器,用于获取所述任务处理指令对应的目标任务,并将所述目标任务发布至任务调度服务器;
任务调度服务器,用于从内存数据库中获得所述目标任务的任务锁时,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点;
各个任务处理节点,用于处理所述任务调度服务器分配的子任务;
其中,基于与各个任务处理节点的空闲硬件资源的均衡程度相适配的任务分片策略,对所述目标任务进行分片,得到各个子任务并分配至相应的任务处理节点进行处理时,任务调度服务器,用于确定所述各个任务处理节点的空闲硬件资源的均衡程度未达到设定阈值时,按照所述各个任务处理节点的空闲硬件资源,将所述目标任务的待处理数据划分成数据量适配于所述各个任务处理节点的空闲硬件资源的各个数据块;基于所述各个数据块生成各个子任务,并分别将所述各个子任务分配至所述各个子任务各自对应的任务处理节点进行处理;
其中,按照所述各个任务处理节点的空闲硬件资源,将所述目标任务的待处理数据划分成数据量适配于所述各个任务处理节点的空闲硬件资源的各个数据块时,任务调度服务器,用于循环执行以下步骤,直至所述目标任务的待处理数据的数据量为0:
步骤1,从所述各个任务处理节点中随机选取三个任务处理节点;
步骤2,基于所述三个任务处理节点的CPU核数,从所述目标任务的待处理数据中,分别为所述三个任务处理节点划分数据块;
步骤3,分别将所述三个任务处理节点的分配状态设置为已分配,并在确定所述目标任务的待处理数据的剩余数据量不为0时,若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数量不小于3,则返回步骤1;若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数量小于3,则按照CPU核数从大到小的顺序,基于分配状态为未分配的任务处理节点的CPU核数,从目标任务的剩余的待处理数据中,分别为分配状态为未分配的任务处理节点划分数据块;若确定所述各个任务处理节点中分配状态为未分配的任务处理节点的数为0,则重置所有任务处理节点的分配状态为未分配,并返回步骤1。
8.一种任务处理设备,其特征在于,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述的任务处理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-5任一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111226127.1A CN113886089B (zh) | 2021-10-21 | 2021-10-21 | 一种任务处理方法、装置、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111226127.1A CN113886089B (zh) | 2021-10-21 | 2021-10-21 | 一种任务处理方法、装置、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113886089A CN113886089A (zh) | 2022-01-04 |
CN113886089B true CN113886089B (zh) | 2024-01-26 |
Family
ID=79004021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111226127.1A Active CN113886089B (zh) | 2021-10-21 | 2021-10-21 | 一种任务处理方法、装置、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886089B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710485B (zh) * | 2022-02-21 | 2023-10-27 | 联想(北京)有限公司 | 处理方法和处理装置 |
CN115033390B (zh) * | 2022-08-09 | 2022-11-25 | 阿里巴巴(中国)有限公司 | 一种负载均衡的方法及装置 |
CN115168017B (zh) * | 2022-09-08 | 2022-11-25 | 天云融创数据科技(北京)有限公司 | 一种任务调度云平台及其任务调度方法 |
CN115623019B (zh) * | 2022-12-02 | 2023-03-21 | 杭州雅拓信息技术有限公司 | 一种分布式运行流调度执行方法和系统 |
CN116578395B (zh) * | 2023-07-13 | 2024-04-05 | 腾讯科技(深圳)有限公司 | 事务处理方法、系统、装置、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049322A (zh) * | 2012-12-31 | 2013-04-17 | 吴立新 | 一种针对拓扑关系并行计算的矢量目标集均衡划分方法 |
CN105677761A (zh) * | 2015-12-30 | 2016-06-15 | 国网信息通信产业集团有限公司 | 一种数据切分的方法及系统 |
CN107566457A (zh) * | 2017-08-09 | 2018-01-09 | 天脉聚源(北京)科技有限公司 | 一种均衡节点设备负载的方法及装置 |
CN109783224A (zh) * | 2018-12-10 | 2019-05-21 | 平安科技(深圳)有限公司 | 基于负载调配的任务分配方法、装置及终端设备 |
CN109815011A (zh) * | 2018-12-29 | 2019-05-28 | 东软集团股份有限公司 | 一种数据处理的方法和装置 |
CN110209496A (zh) * | 2019-05-20 | 2019-09-06 | 中国平安财产保险股份有限公司 | 基于数据处理的任务分片方法、装置及分片服务器 |
CN111459641A (zh) * | 2020-04-08 | 2020-07-28 | 广州欢聊网络科技有限公司 | 一种跨机房的任务调度和任务处理的方法及装置 |
CN111813513A (zh) * | 2020-06-24 | 2020-10-23 | 中国平安人寿保险股份有限公司 | 基于分布式的实时任务调度方法、装置、设备及介质 |
US11030169B1 (en) * | 2017-03-07 | 2021-06-08 | Amazon Technologies, Inc. | Data re-sharding |
CN112948077A (zh) * | 2021-02-06 | 2021-06-11 | 中国建设银行股份有限公司 | 批处理方法、装置、设备及存储介质 |
-
2021
- 2021-10-21 CN CN202111226127.1A patent/CN113886089B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049322A (zh) * | 2012-12-31 | 2013-04-17 | 吴立新 | 一种针对拓扑关系并行计算的矢量目标集均衡划分方法 |
CN105677761A (zh) * | 2015-12-30 | 2016-06-15 | 国网信息通信产业集团有限公司 | 一种数据切分的方法及系统 |
US11030169B1 (en) * | 2017-03-07 | 2021-06-08 | Amazon Technologies, Inc. | Data re-sharding |
CN107566457A (zh) * | 2017-08-09 | 2018-01-09 | 天脉聚源(北京)科技有限公司 | 一种均衡节点设备负载的方法及装置 |
CN109783224A (zh) * | 2018-12-10 | 2019-05-21 | 平安科技(深圳)有限公司 | 基于负载调配的任务分配方法、装置及终端设备 |
CN109815011A (zh) * | 2018-12-29 | 2019-05-28 | 东软集团股份有限公司 | 一种数据处理的方法和装置 |
CN110209496A (zh) * | 2019-05-20 | 2019-09-06 | 中国平安财产保险股份有限公司 | 基于数据处理的任务分片方法、装置及分片服务器 |
CN111459641A (zh) * | 2020-04-08 | 2020-07-28 | 广州欢聊网络科技有限公司 | 一种跨机房的任务调度和任务处理的方法及装置 |
CN111813513A (zh) * | 2020-06-24 | 2020-10-23 | 中国平安人寿保险股份有限公司 | 基于分布式的实时任务调度方法、装置、设备及介质 |
CN112948077A (zh) * | 2021-02-06 | 2021-06-11 | 中国建设银行股份有限公司 | 批处理方法、装置、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
A High Priority Random Task Fuzzy Scheduling Algorithm for CPS;Jing Zhang et al.;《2019 Chinese Control And Decision Conference (CCDC)》;全文 * |
Hadoop环境下基于数据本地化的Reduce任务调度策略;王浩;;计算机与现代化(01);全文 * |
基于MongoDB的数据分片与分配策略研究;熊峰;刘宇;;计算机与数字工程(04);全文 * |
并行XML数据库系统的分片策略;于亚新, 王国仁, 于戈;东北大学学报(自然科学版)(12);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113886089A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113886089B (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
US11593149B2 (en) | Unified resource management for containers and virtual machines | |
US11579914B2 (en) | Platform independent GPU profiles for more efficient utilization of GPU resources | |
US10659318B2 (en) | Methods and apparatus related to management of unit-based virtual resources within a data center environment | |
JP6215715B2 (ja) | クラウドコンピューティング環境を管理する方法およびシステム | |
US11507417B2 (en) | Job scheduling based on job execution history | |
US11740921B2 (en) | Coordinated container scheduling for improved resource allocation in virtual computing environment | |
US10346263B2 (en) | Host swap hypervisor that provides high availability for a host of virtual machines | |
US11593177B2 (en) | Cost-savings using ephemeral hosts in infrastructure as a service environments based on health score | |
US9507676B2 (en) | Cluster creation and management for workload recovery | |
US20220253341A1 (en) | Memory-aware placement for virtual gpu enabled systems | |
CN112379971B (zh) | 应用容器管理方法、装置及设备 | |
US11263054B2 (en) | Memory-aware placement for virtual GPU enabled systems | |
CN111880934A (zh) | 一种资源管理方法、装置、设备及可读存储介质 | |
US9800484B2 (en) | Optimizing resource utilization in a networked computing environment | |
CN113064744A (zh) | 任务处理方法、装置、计算机可读介质及电子设备 | |
US20170262315A1 (en) | Multilayered resource scheduling | |
JP2017138895A (ja) | 仮想化環境管理システムおよび仮想化環境管理方法 | |
US11561824B2 (en) | Embedded persistent queue | |
US12028269B2 (en) | Method for optimal resource selection based on available GPU resource analysis in large-scale container platform | |
US20230229477A1 (en) | Upgrade of cell sites with reduced downtime in telco node cluster running containerized applications | |
CN113760441A (zh) | 容器创建方法、装置、电子设备及存储介质 | |
CN113032136A (zh) | 多云环境下电网分析任务调度方法和装置 | |
CN112612579B (zh) | 虚拟机部署方法、存储介质及计算机设备 | |
CN116401116A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |