CN117492975A - 分布式任务数据处理方法、装置及电子设备 - Google Patents
分布式任务数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117492975A CN117492975A CN202311227609.8A CN202311227609A CN117492975A CN 117492975 A CN117492975 A CN 117492975A CN 202311227609 A CN202311227609 A CN 202311227609A CN 117492975 A CN117492975 A CN 117492975A
- Authority
- CN
- China
- Prior art keywords
- task
- message
- processing node
- task processing
- distributed
- 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
- 238000003672 processing method Methods 0.000 title abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 297
- 238000000034 method Methods 0.000 claims abstract description 63
- 230000004044 response Effects 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber 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
-
- 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/5061—Partitioning or combining of 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- 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)
- Multi Processors (AREA)
Abstract
本申请的实施例提供了一种分布式任务数据处理方法、装置、介质及电子设备。所述方法执行于分布式任务处理***中的消息处理节点,所述分布式任务处理***还包括多个任务处理节点,该方法包括:响应于监听到任意一个用户端发送的任务处理请求,接收任务处理消息,并确定所述任务处理消息的消息类型;如果所述任务处理消息的消息类型为任务取消消息,则将所述任务取消消息发送至第一任务处理节点,以由所述第一任务处理节点取消执行目标任务;其中,所述任务取消消息中包括待取消任务的任务编号,所述第一任务处理节点根据所述任务编号在自身的任务列表查找所述目标任务。本申请实施例的技术方案可以提高分布式任务数据处理的灵活性。
Description
技术领域
本申请涉及计算机及数据处理技术领域,具体而言,涉及一种分布式任务数据处理方法、装置及电子设备。
背景技术
在IT***建设中,存在一些计算量比较大的、运行时间比较长的***任务需要执行,通常会采用分布计算技术,一种将计算任务分解为多个子任务,并在多个任务节点上并行执行的技术。如果用户提交了任务,任务已经在执行中,由于某种原因,用户需要取消此任务的执行,在这种情况下,一般会通过在任务代码中***条件判断语句,当条件满足时触发任务取消。然而,这种方案需要修改执行任务的源代码,操作起来不够灵活。基于此,如何提高分布式任务数据处理的灵活性是亟待解决的技术问题。
发明内容
本申请的实施例提供了一种分布式任务数据处理方法、装置、计算机程序产品或计算机程序、计算机介质及电子设备,进而至少在一定程度上可以提高分布式任务数据处理的灵活性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种分布式任务数据处理方法,所述方法执行于分布式任务处理***中的消息处理节点,所述分布式任务处理***还包括多个任务处理节点,所述方法包括:响应于监听到任意一个用户端发送的任务处理请求,接收任务处理消息,并确定所述任务处理消息的消息类型;如果所述任务处理消息的消息类型为任务取消消息,则将所述任务取消消息发送至第一任务处理节点,以由所述第一任务处理节点取消执行目标任务;其中,所述任务取消消息中包括待取消任务的任务编号,所述第一任务处理节点根据所述任务编号在自身的任务列表查找所述目标任务。
在本申请的一些实施例中,基于前述方案,所述方法还包括:如果所述任务处理消息的消息类型为任务执行消息,则获取记录在所述任务执行消息中的任务数据,并根据所述任务数据确定执行所述任务所需的需求计算资源;获取所述分布式任务处理***中各个任务处理节点的剩余计算资源;根据所述需求计算资源和各个任务处理节点的剩余计算资源,从所述分布式任务处理***中选定第二任务处理节点,并将所述任务执行消息发送至所述第二任务处理节点,以由所述第二任务处理节点执行所述任务。
在本申请的一些实施例中,基于前述方案,所述根据所述需求计算资源和各个任务处理节点的剩余计算资源,从所述分布式任务处理***中选定第二任务处理节点,包括:将所述剩余计算资源大于或等于所述需求计算资源的任务处理节点确定为候选任务处理节点;确定各个候选任务处理节点中的任务个数,并选定所述任务个数最少的候选任务处理节点作为所述第二任务处理节点。
在本申请的一些实施例中,基于前述方案,在将所述任务执行消息发送至所述第二任务处理节点之前,所述方法还包括:基于所述任务执行消息生成目标任务编号,并绑定所述目标任务编号,所述第二任务处理节点,以及所述任意一个用户端之间的对应关系;将所述目标任务编号添加至所述任务执行消息。
在本申请的一些实施例中,基于前述方案,所述方法还包括:监听由任务处理节点发送的任务进程消息,所述任务进程消息包括任务编号;确定与所述任务进程消息中的任务编号绑定有对应关系的目标用户端,并将所述任务进程消息转发至所述目标用户端。
在本申请的一些实施例中,基于前述方案,所述将所述任务取消消息发送至第一任务处理节点,包括:将所述任务取消消息在所述分布式任务处理***中进行广播,以由所述第一任务处理节点根据所述任务编号主动接收所述任务取消消息。
在本申请的一些实施例中,基于前述方案,所述将所述任务取消消息发送至第一任务处理节点,包括:从所述任务取消消息中读取所述任务编号;将所述任务取消消息发送至与所述任务编号对应的第一任务处理节点。
在本申请的一些实施例中,基于前述方案,在将所述任务取消消息发送至第一任务处理节点之后,所述方法还包括:监听所述第一任务处理节点的回执消息,所述回执消息用于反映所述第一任务处理节点成功取消任务并清理垃圾任务数据的结果;如果监听到所述回执消息,则将所述回执消息转发至所述任意一个用户端;如果未监听到所述回执消息,则重新将所述任务取消消息发送至所述第一任务处理节点。
根据本申请实施例的一个方面,提供了一种分布式任务数据处理装置,所述装置设置于分布式任务处理***中的消息处理节点,所述分布式任务处理***还包括多个任务处理节点,所述装置包括:接收单元,用于响应于监听到任意一个用户端发送的任务处理请求,接收任务处理消息,并确定所述任务处理消息的消息类型;发送单元,用于如果所述任务处理消息的消息类型为任务取消消息,则将所述任务取消消息发送至第一任务处理节点,以由所述第一任务处理节点取消执行目标任务;其中,所述任务取消消息中包括待取消任务的任务编号,所述第一任务处理节点根据所述任务编号在自身的任务列表查找所述目标任务。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机介质中。计算机设备的处理器从计算机介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中所述的方法。
根据本申请实施例的一个方面,提供了一种计算机介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的方法。
在本申请中,当用户想要取消某一项正在执行的任务时,只需要向分布式任务处理***中的消息处理节点发送任务取消消息,就能取消分布式任务处理***中正在执行的任务,相对于现有技术中通过在任务本身适当的进程位置增加条件判断语句来触发取消操作,或者是通过设置定时器或者使用计时器来监控任务的执行时间并在超时时触发取消操作的方案相比,本申请提出的技术方案能够在一定程度上提高分布式任务数据处理的灵活性和效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本申请实施例的技术方案的示例性***架构的示意图;
图2示出了根据本申请一个实施例的分布式任务数据处理方法的流程图;
图3示出了根据本申请另一个实施例的分布式任务数据处理方法的流程图;
图4示出了根据本申请一个实施例的分布式任务数据处理装置的框图;
图5示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1示出了可以应用本申请实施例的技术方案的示例性***架构的示意图。
如图1所示,***架构可以包括终端设备104(在本申请中可以作为用户端,如图1中所示智能手机、平板电脑和便携式计算机中的一种或多种,当然也可以是台式计算机等等,但并不局限于此,本申请在此不做限制)、网络102和分布式任务处理***100。其中,分布式任务处理***100可以包括消息处理节点101和多个任务处理节点103,消息处理节点和任务处理节点可以是物理服务器,也可以是虚拟服务器。网络102用以在终端设备和消息处理节点之间,消息处理节点和任务处理节点之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线通信链路、无线通信链路等等。
需要说明的是,本申请实施例所提供的分布式任务数据处理方法可以由消息处理节点执行,相应地,分布式任务数据处理装置一般设置于消息处理节点中。
还需要说明的是,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图2示出了根据本申请一个实施例的分布式任务数据处理方法的流程图,该分布式任务数据处理方法可以由具有计算处理功能的设备来执行,比如可以由图1中所示的服务器(即消息处理节点101)来执行。参照图2所示,该分布式任务数据处理方法至少包括步骤210至步骤220,详细介绍如下:
步骤210,响应于监听到任意一个用户端发送的任务处理请求,接收任务处理消息,并确定所述任务处理消息的消息类型。
步骤220,如果所述任务处理消息的消息类型为任务取消消息,则将所述任务取消消息发送至第一任务处理节点,以由所述第一任务处理节点取消执行目标任务;其中,所述任务取消消息中包括待取消任务的任务编号,所述第一任务处理节点根据所述任务编号在自身的任务列表查找所述目标任务。
在本申请中,任意一个用户端都可以向分布式任务处理***中的消息处理节点发送任务处理消息,任务处理消息可以分为两种类型,一种是任务执行消息,另一种是任务取消消息。其中,任务执行消息主要用于请求分布式任务处理***中的任务处理节点执行一项新的任务,比如,预测某一款商品在未来一段时间内的销售量,而任务取消消息主要用于请求分布式任务处理***中的任务处理节点取消正在执行的任务。
在本申请中,通过在分布式任务处理***中设置一个消息处理节点,可以用来管理用户端和任务处理节点之间往来的消息,具体来说,当消息处理节点监听到任意一个用户端发送的任务处理请求时,接收对应任务处理消息,并确定该任务处理消息的消息类型,如果判定该消息类型为任务取消消息,则将所述任务取消消息发送至第一任务处理节点,以由所述第一任务处理节点根据记录在所述任务取消消息中的任务编号在自身的任务列表查找所述目标任务并取消执行目标任务。
上述方案的好处在于,当用户想要取消某一项正在执行的任务时,只需要向分布式任务处理***中的消息处理节点发送任务取消消息,就能取消分布式任务处理***中正在执行的任务,相对于现有技术中通过在任务本身适当的进程位置增加条件判断语句来触发取消操作,或者是通过设置定时器或者使用计时器来监控任务的执行时间并在超时时触发取消操作的方案相比,本申请提出的技术方案能在一定程度上提高分布式任务数据处理的灵活性和效率。
在本申请中,还可以执行如图3所示的步骤。
参照图3,示出了根据本申请另一个实施例的分布式任务数据处理方法的流程图。具体包括步骤230至步骤250:
步骤230,如果所述任务处理消息的消息类型为任务执行消息,则获取记录在所述任务执行消息中的任务数据,并根据所述任务数据确定执行所述任务所需的需求计算资源。
步骤240,获取所述分布式任务处理***中各个任务处理节点的剩余计算资源。
步骤250,根据所述需求计算资源和各个任务处理节点的剩余计算资源,从所述分布式任务处理***中选定第二任务处理节点,并将所述任务执行消息发送至所述第二任务处理节点,以由所述第二任务处理节点执行所述任务。
在本申请中,所述任务数据可以是指执行一项任务所需要的基础数据,比如,预测某一款商品在未来一段时间内的销售量,所需要的基础数据就至少包括该商品在历史上一段时间内的实际销售情况。
在本申请中,需求计算资源可以是指在执行任务的过程所需占据的内存资源,网络资源等等,而剩余计算资源则可以是指任务处理节点在当前剩余的内存资源,网络资源等等。
在本申请的一个实施例中,所述根据所述需求计算资源和各个任务处理节点的剩余计算资源,从所述分布式任务处理***中选定第二任务处理节点,可以执行如下步骤251至步骤252:
步骤251,将所述剩余计算资源大于或等于所述需求计算资源的任务处理节点确定为候选任务处理节点。
步骤252,确定各个候选任务处理节点中的任务个数,并选定所述任务个数最少的候选任务处理节点作为所述第二任务处理节点。
在本实施例中,比如,任务处理节点1的剩余计算资源为10个资源单位,正在执行的任务个数为5个,任务处理节点2的剩余计算资源为5个资源单位,正在执行的任务个数为1个,任务处理节点3的剩余计算资源为8个资源单位,正在执行的任务个数为2个,而当前执行所述任务所需的需求计算资源为6个。由于任务处理节点2的剩余计算资源小于当前执行所述任务所需的需求计算资源,因此可以将任务处理节点1和任务处理节点3确定候选任务处理节点,又由于任务处理节点3中在执行的任务个数小于任务处理节点1在执行的任务个数,因此将任务处理节点3选定为所述第二任务处理节点。
基于本实施例中的方案,其好处在于,一方面,通过将剩余计算资源大于或等于所述需求计算资源的任务处理节点确定为候选任务处理节点,排除剩余计算资源小于所述需求计算资源的任务处理节点,可以避免将任务执行消息发送至剩余计算资源少的任务处理节点而导致任务不能被执行的情况发生,增强任务执行的稳定性。另一方面,将任务个数最少的候选任务处理节点作为所述第二任务处理节点,可以降低任务处理节点因为执行任务的进程数量过多而出现崩溃的可能性,增强任务执行的可靠性。
在本申请的一个实施例中,所述从所述分布式任务处理***中选定第二任务处理节点,也可以将剩余计算资源最多的任务处理节点选定为第二任务处理节点。
在本申请的一个实施例中,在将所述任务执行消息发送至所述第二任务处理节点之前,还可以执行如下步骤261至步骤262:
步骤261,基于所述任务执行消息生成目标任务编号,并绑定所述目标任务编号,所述第二任务处理节点,以及所述任意一个用户端之间的对应关系。
步骤262,将所述目标任务编号添加至所述任务执行消息。
在本实施例中,在消息处理节点接收到任务执行消息之后,可以为任务执行消息生成目标任务编号,并将目标任务编号,第二任务处理节点,以及发送所述任务执行消息的所述任意一个用户端进行绑定,以形成三者之间的对应关系。用于后续在转发消息时确定转发对象,比如,在需要的情况下,可以基于这一对应关系确定任务取消消息的转发对象为所述第二任务处理节点。
同时,消息处理节点将所述目标任务编号添加至所述任务执行消息,以便于第二任务处理节点能够获取自身处理该任务执行消息所对应任务的目标任务编号,并将该目标任务编号记录到自身的任务列表中。
在本申请中,还可以执行如下步骤271至步骤272:
步骤271,监听由任务处理节点发送的任务进程消息,所述任务进程消息包括任务编号。
步骤272,确定与所述任务进程消息中的任务编号绑定有对应关系的目标用户端,并将所述任务进程消息转发至所述目标用户端。
在本申请中,消息处理节点还可以监听各个任务处理节点的任务进程,如果监听到由某一个任务处理节点发送的任务进程消息,则可以将所述任务进程消息转发至与所述任务进程消息中的任务编号绑定有对应关系的目标用户端。如此一来,基于所述对应关系,可以保证所述消息处理节点在用户端和任务处理节点之间进行消息转发的顺畅性和准确性。
在本申请的一个实施例中,消息处理节点在接收任务处理消息之前,还可以对所述任意一个用户端的身份信息进行验证,比如,所述任意一个用户端可以通过自身的私钥对任务处理消息进行加密,如果消息处理节点能够通过自身记录的所述任意一个用户端的公钥对加密的任务处理消息进行解密,则证明所述任意一个用户端为合法的用户端,进而接收该任务处理消息。
在本申请中,将所述任务取消消息发送至第一任务处理节点,至少可以有如下两种方式实现。
其一,可以按照如下步骤281执行:
步骤281,将所述任务取消消息在所述分布式任务处理***中进行广播,以由所述第一任务处理节点根据所述任务编号主动接收所述任务取消消息。
其二,可以按照如下步骤282至步骤283执行:
步骤282,从所述任务取消消息中读取所述任务编号。
步骤283,将所述任务取消消息发送至与所述任务编号对应的第一任务处理节点。
在本申请中,所述消息处理节点在将任务取消消息或者任务执行消息发送给任务处理节点时,可以通过自身的私钥对任务取消消息或者任务执行消息进行加密,以使得任务处理节点能够通过自身记录的所述消息处理节点的公钥对加密的任务取消消息或者任务执行消息进行解密,进而保证任务处理节点能够获取到由真正的消息处理节点发送的任务取消消息或者任务执行消息,保证分布式任务数据处理的安全性。
在本申请的一个实施例中,在将所述任务取消消息发送至第一任务处理节点之后,还可以执行如下步骤291至步骤293:
步骤291,监听所述第一任务处理节点的回执消息,所述回执消息用于反映所述第一任务处理节点成功取消任务并清理垃圾任务数据的结果。
步骤292,如果监听到所述回执消息,则将所述回执消息转发至所述任意一个用户端。
步骤293,如果未监听到所述回执消息,则重新将所述任务取消消息发送至所述第一任务处理节点。
在本申请中,在消息处理节点将所述任务取消消息发送至第一任务处理节点之后,通过监听所述第一任务处理节点是否返回回执消息,以确保第一任务处理节点是否真正取消任务,而在没有监听到所述回执消息的情况下,通过重新将所述任务取消消息发送至所述第一任务处理节点,可以确保第一任务处理节点能够真正取消任务,进而增强任务取消的稳定性和可靠性。
另外,在取消执行分布式任务的同时对垃圾任务数据进行回滚或清理,可以以确保任务取消后不会留下执行过程中的垃圾数据或不一致状态。
在本申请中,当用户想要取消某一项正在执行的任务时,只需要向分布式任务处理***中的消息处理节点发送任务取消消息,就能取消分布式任务处理***中正在执行的任务,相对于现有技术中通过在任务本身适当的进程位置增加条件判断语句来触发取消操作,或者是通过设置定时器或者使用计时器来监控任务的执行时间并在超时时触发取消操作的方案相比,本申请提出的技术方案能够在一定程度上提高分布式任务数据处理的灵活性和效率。同时,本申请提出的技术方案可以在不修改任务源码的情况下就能取消任务,很大程序上减少了任务开发的时间和精力,将主要精力集中在任务逻辑上处理上,且本申请技术方案具有很大的通用性,可以适配很多具有任务取消需求的分布式任务***。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的分布式任务数据处理方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的分布式任务数据处理方法的实施例。
图4示出了根据本申请一个实施例的分布式任务数据处理装置的框图。
参照图4所示,根据本申请一个实施例的分布式任务数据处理装置400,所述装置设置于分布式任务处理***中的消息处理节点,所述分布式任务处理***还包括多个任务处理节点,所述装置包括:接收单元401和发送单元402。
其中,接收单元401,用于响应于监听到任意一个用户端发送的任务处理请求,接收任务处理消息,并确定所述任务处理消息的消息类型;发送单元402,用于如果所述任务处理消息的消息类型为任务取消消息,则将所述任务取消消息发送至第一任务处理节点,以由所述第一任务处理节点取消执行目标任务;其中,所述任务取消消息中包括待取消任务的任务编号,所述第一任务处理节点根据所述任务编号在自身的任务列表查找所述目标任务。
在本申请的一些实施例中,基于前述方案,所述发送单元402配置为:如果所述任务处理消息的消息类型为任务执行消息,则获取记录在所述任务执行消息中的任务数据,并根据所述任务数据确定执行所述任务所需的需求计算资源;获取所述分布式任务处理***中各个任务处理节点的剩余计算资源;根据所述需求计算资源和各个任务处理节点的剩余计算资源,从所述分布式任务处理***中选定第二任务处理节点,并将所述任务执行消息发送至所述第二任务处理节点,以由所述第二任务处理节点执行所述任务。
在本申请的一些实施例中,基于前述方案,所述发送单元402还配置为:将所述剩余计算资源大于或等于所述需求计算资源的任务处理节点确定为候选任务处理节点;确定各个候选任务处理节点中的任务个数,并选定所述任务个数最少的候选任务处理节点作为所述第二任务处理节点。
在本申请的一些实施例中,基于前述方案,所述装置还包括:添加单元,用于在将所述任务执行消息发送至所述第二任务处理节点之前,基于所述任务执行消息生成目标任务编号,并绑定所述目标任务编号,所述第二任务处理节点,以及所述任意一个用户端之间的对应关系;将所述目标任务编号添加至所述任务执行消息。
在本申请的一些实施例中,基于前述方案,所述装置还包括:监听单元,用于监听由任务处理节点发送的任务进程消息,所述任务进程消息包括任务编号;确定与所述任务进程消息中的任务编号绑定有对应关系的目标用户端,并将所述任务进程消息转发至所述目标用户端。
在本申请的一些实施例中,基于前述方案,所述发送单元402还配置为:将所述任务取消消息在所述分布式任务处理***中进行广播,以由所述第一任务处理节点根据所述任务编号主动接收所述任务取消消息。
在本申请的一些实施例中,基于前述方案,所述发送单元402还配置为:从所述任务取消消息中读取所述任务编号;将所述任务取消消息发送至与所述任务编号对应的第一任务处理节点。
在本申请的一些实施例中,基于前述方案,所述监听单元配置为:在将所述任务取消消息发送至第一任务处理节点之后,监听所述第一任务处理节点的回执消息,所述回执消息用于反映所述第一任务处理节点成功取消任务并清理垃圾任务数据的结果;如果监听到所述回执消息,则将所述回执消息转发至所述任意一个用户端;如果未监听到所述回执消息,则重新将所述任务取消消息发送至所述第一任务处理节点。
图5示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
需要说明的是,图5示出的电子设备的计算机***500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机***500包括中央处理单元(Central Processing Unit,CPU)501,其可以根据存储在只读存储器(Read-Only Memory,ROM)502中的程序或者从储存部分508加载到随机访问存储器(Random Access Memory,RAM)503中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 503中,还存储有***操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(Input/Output,I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liqu编号Crystal Display,LCD)等以及扬声器等的输出部分507;包括硬盘等的储存部分508;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入储存部分508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的***中限定的各种功能。
需要说明的是,本申请实施例所示的计算机介质可以是计算机可读信号介质或者计算机介质或者是上述两者的任意组合。计算机介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机介质以外的任何计算机介质,该计算机介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机介质中。计算机设备的处理器从计算机介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中所述的方法。
作为另一方面,本申请还提供了一种计算机介质,该计算机介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种分布式任务数据处理方法,其特征在于,所述方法执行于分布式任务处理***中的消息处理节点,所述分布式任务处理***还包括多个任务处理节点,所述方法包括:
响应于监听到任意一个用户端发送的任务处理请求,接收任务处理消息,并确定所述任务处理消息的消息类型;
如果所述任务处理消息的消息类型为任务取消消息,则将所述任务取消消息发送至第一任务处理节点,以由所述第一任务处理节点取消执行目标任务;
其中,所述任务取消消息中包括待取消任务的任务编号,所述第一任务处理节点根据所述任务编号在自身的任务列表查找所述目标任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述任务处理消息的消息类型为任务执行消息,则获取记录在所述任务执行消息中的任务数据,并根据所述任务数据确定执行所述任务所需的需求计算资源;
获取所述分布式任务处理***中各个任务处理节点的剩余计算资源;
根据所述需求计算资源和各个任务处理节点的剩余计算资源,从所述分布式任务处理***中选定第二任务处理节点,并将所述任务执行消息发送至所述第二任务处理节点,以由所述第二任务处理节点执行所述任务。
3.根据权利要求2所述的方法,其特征在于,所述根据所述需求计算资源和各个任务处理节点的剩余计算资源,从所述分布式任务处理***中选定第二任务处理节点,包括:
将所述剩余计算资源大于或等于所述需求计算资源的任务处理节点确定为候选任务处理节点;
确定各个候选任务处理节点中的任务个数,并选定所述任务个数最少的候选任务处理节点作为所述第二任务处理节点。
4.根据权利要求2所述的方法,其特征在于,在将所述任务执行消息发送至所述第二任务处理节点之前,所述方法还包括:
基于所述任务执行消息生成目标任务编号,并绑定所述目标任务编号,所述第二任务处理节点,以及所述任意一个用户端之间的对应关系;
将所述目标任务编号添加至所述任务执行消息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
监听由任务处理节点发送的任务进程消息,所述任务进程消息包括任务编号;
确定与所述任务进程消息中的任务编号绑定有对应关系的目标用户端,并将所述任务进程消息转发至所述目标用户端。
6.根据权利要求1所述的方法,其特征在于,所述将所述任务取消消息发送至第一任务处理节点,包括:
将所述任务取消消息在所述分布式任务处理***中进行广播,以由所述第一任务处理节点根据所述任务编号主动接收所述任务取消消息。
7.根据权利要求1所述的方法,其特征在于,所述将所述任务取消消息发送至第一任务处理节点,包括:
从所述任务取消消息中读取所述任务编号;
将所述任务取消消息发送至与所述任务编号对应的第一任务处理节点。
8.根据权利要求1所述的方法,其特征在于,在将所述任务取消消息发送至第一任务处理节点之后,所述方法还包括:
监听所述第一任务处理节点的回执消息,所述回执消息用于反映所述第一任务处理节点成功取消任务并清理垃圾任务数据的结果;
如果监听到所述回执消息,则将所述回执消息转发至所述任意一个用户端;
如果未监听到所述回执消息,则重新将所述任务取消消息发送至所述第一任务处理节点。
9.一种分布式任务数据处理装置,其特征在于,所述装置设置于分布式任务处理***中的消息处理节点,所述分布式任务处理***还包括多个任务处理节点,所述装置包括:
接收单元,用于响应于监听到任意一个用户端发送的任务处理请求,接收任务处理消息,并确定所述任务处理消息的消息类型;
发送单元,用于如果所述任务处理消息的消息类型为任务取消消息,则将所述任务取消消息发送至第一任务处理节点,以由所述第一任务处理节点取消执行目标任务;
其中,所述任务取消消息中包括待取消任务的任务编号,所述第一任务处理节点根据所述任务编号在自身的任务列表查找所述目标任务。
10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如权利要求1至8任一项所述的方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311227609.8A CN117492975A (zh) | 2023-09-21 | 2023-09-21 | 分布式任务数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311227609.8A CN117492975A (zh) | 2023-09-21 | 2023-09-21 | 分布式任务数据处理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117492975A true CN117492975A (zh) | 2024-02-02 |
Family
ID=89677127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311227609.8A Pending CN117492975A (zh) | 2023-09-21 | 2023-09-21 | 分布式任务数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492975A (zh) |
-
2023
- 2023-09-21 CN CN202311227609.8A patent/CN117492975A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558748B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108900364B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
US20220239496A1 (en) | Blockchain consensus method, device and system | |
CN110505162B (zh) | 消息传输方法、装置及电子设备 | |
CN109117252B (zh) | 基于容器的任务处理的方法、***及容器集群管理*** | |
CN112291372B (zh) | 区块链的异步落账方法、装置、介质及电子设备 | |
US8719622B2 (en) | Recording and preventing crash in an appliance | |
CN107342929B (zh) | 一种新消息通知的发送方法、装置及*** | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN110889682A (zh) | 基于区块链的缴费信息处理方法、装置、介质及设备 | |
CN111046010A (zh) | 日志储存方法、装置、***、电子设备和计算机可读介质 | |
CN109218338B (zh) | 信息处理***、方法和装置 | |
CN111176641B (zh) | 流程节点执行方法、装置、介质及电子设备 | |
CN110930253B (zh) | 智能合约内部主键生成方法、装置、计算机设备及存储介质 | |
CN111124291B (zh) | 分布式存储***的数据存储处理方法、装置、电子设备 | |
CN112825525B (zh) | 用于处理事务的方法和装置 | |
CN113689296B (zh) | 一种异步可信计算的合约调度方法、装置和电子设备 | |
CN117492975A (zh) | 分布式任务数据处理方法、装置及电子设备 | |
CN114827157A (zh) | 集群任务处理方法、装置、***、电子设备及可读介质 | |
US20230014233A1 (en) | Serverless Application Function Execution | |
CN113986995A (zh) | 请求分发方法、装置、存储介质及电子设备 | |
CN114449040A (zh) | 基于云平台的配置下发方法及装置 | |
CN113283891A (zh) | 信息处理方法、装置和电子设备 | |
CN111970338A (zh) | 基于云函数的请求处理方法、装置及计算机可读介质 | |
CN110262756B (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 |