CN112804334A - 分发及获取任务的方法、装置、存储介质、电子设备 - Google Patents
分发及获取任务的方法、装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN112804334A CN112804334A CN202110057004.3A CN202110057004A CN112804334A CN 112804334 A CN112804334 A CN 112804334A CN 202110057004 A CN202110057004 A CN 202110057004A CN 112804334 A CN112804334 A CN 112804334A
- Authority
- CN
- China
- Prior art keywords
- task
- working
- node
- control node
- heartbeat data
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Abstract
本公开实施例提供了一种分发及获取任务的方法、装置、存储介质、电子设备,分发任务的方法包括:主控节点与各个工作节点分别建立gRPC链接;主控节点基于gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数;主控节点根据心跳数据为工作节点分发任务。本公开实施例的整个过程不需要主控节点具有复杂的逻辑,其工作逻辑是直接根据工作节点的心跳数据分发任务即可,无论工作节点增加多少,以及是否存在特殊需求的工作节点,都不需要改变主控节点的工作逻辑,极大的降低了开发和管理难度,提升了系统性能。
Description
技术领域
本公开涉及数据交互领域,特别涉及一种分发及获取任务的方法、装置、存储介质、电子设备。
背景技术
传统的分布式任务系统由主控节点(设备)负责分发任务给工作节点(设备),工作节点接收任务后执行,在任务执行完成后等待主控节点的下一次分发。
当任务量较大而扩充工作节点的数量后,主控节点的分发策略通常要随之变动,主控节点逻辑变得复杂,一旦遇到有特殊定制需求的工作节点,主控节点的逻辑将会更加复杂,需要耗费大量的人力维护主控节点的逻辑,主控节点具有较大的开发及管理难度;当分发任务时,同一任务很有可能被分配到不同工作节点重复执行,系统性能较低。
发明内容
有鉴于此,本公开实施例提出了一种分发及获取任务的方法、装置、存储介质、电子设备,用以解决现有技术的如下问题:当任务量较大而扩充工作节点的数量后,主控节点的分发策略通常要随之变动,主控节点逻辑变得复杂,需要耗费大量的人力维护主控节点的逻辑,主控节点具有较大的开发及管理难度。
一方面,本公开实施例提出了一种分发任务的方法,包括:主控节点与各个工作节点分别建立gRPC链接;所述主控节点基于所述gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,所述心跳数据携带有所述工作节点的当前工作状态及任务执行策略参数;所述主控节点根据所述心跳数据为所述工作节点分发任务。
在一些实施例中,所述主控节点根据所述心跳数据为所述工作节点分发任务,包括:所述主控节点检测所述工作节点的所述当前工作状态是否为未执行任务;在所述当前工作状态为未执行任务的情况下,所述主控节点根据所述任务执行策略参数为所述工作节点分发任务。
在一些实施例中,所述主控节点根据所述心跳数据为所述工作节点分发任务之后,还包括:所述主控节点在所述任务所在的任务数据表中修改所述任务的执行状态。
在一些实施例中,所述主控节点根据所述心跳数据为所述工作节点分发任务之后,还包括:所述主控节点基于所述gRPC链接接收来自所述工作节点的任务执行结果数据,其中,所述任务执行结果数据至少包括:任务的编号和当前执行状态;所述主控节点基于所述任务的编号查找所述任务所在的任务数据表,根据所述当前执行状态修改所述任务数据表中所述任务的执行状态。
另一方面,本公开实施例提出了一种获取任务的方法,包括:工作节点与主控节点建立gRPC链接;所述工作节点基于所述gRPC链接按照预定周期向所述主控节点发送心跳数据,其中,所述心跳数据携带有所述工作节点的当前工作状态及任务执行策略参数;所述工作节点接收所述主控节点根据所述心跳数据分发的任务,并执行所述任务。
在一些实施例中,所述执行所述任务之后,还包括:所述工作节点基于所述gRPC链接向所述主控节点发送任务执行结果数据,其中,所述任务执行结果数据至少包括:任务的编号和当前执行状态。
另一方面,本公开实施例提出了一种分发任务的装置,包括:第一建链模块,用于使主控节点与各个工作节点分别建立gRPC链接;第一接收模块,用于基于所述gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,所述心跳数据携带有所述工作节点的当前工作状态及任务执行策略参数;分发模块,用于根据所述心跳数据为所述工作节点分发任务。
在一些实施例中,所述分发模块,具体用于:检测所述工作节点的所述当前工作状态是否为未执行任务;在所述当前工作状态为未执行任务的情况下,根据所述任务执行策略参数为所述工作节点分发任务。
在一些实施例中,还包括:第一修改模块,用于在所述任务所在的任务数据表中修改所述任务的执行状态。
在一些实施例中,还包括:第二接收模块,用于基于所述gRPC链接接收来自所述工作节点的任务执行结果数据,其中,所述任务执行结果数据至少包括:任务的编号和当前执行状态;第二修改模块,用于基于所述任务的编号查找所述任务所在的任务数据表,根据所述当前执行状态修改所述任务数据表中所述任务的执行状态。
另一方面,本公开实施例提出了一种获取任务的装置,包括:第二建链模块,用于工作节点与主控节点建立gRPC链接;第一发送模块,用于基于所述gRPC链接按照预定周期向所述主控节点发送心跳数据,其中,所述心跳数据携带有所述工作节点的当前工作状态及任务执行策略参数;第三接收模块,用于接收所述主控节点根据所述心跳数据分发的任务;执行模块,用于执行所述任务。
在一些实施例中,还包括:第二发送模块,用于在执行完所述任务后,基于所述gRPC链接向所述主控节点发送任务执行结果数据,其中,所述任务执行结果数据至少包括:任务的编号和当前执行状态。
另一方面,本公开实施例提出了一种存储介质,存储有计算机程序,计算机程序被处理器执行时实现本公开任意实施例提供的方法。
另一方面,本公开实施例提出了一种电子设备,至少包括存储器、处理器,存储器上存储有计算机程序,处理器在执行存储器上的计算机程序时实现本公开任意实施例提供的方法。
本公开实施例主控节点和各个工作节点之间建立了gRPC链接,工作节点基于gRPC链接可以发送心跳数据,使得主控节点可以知晓工作节点当前工作状态及任务执行策略参数,进而主控节点可以根据当前工作状态及任务执行策略参数为工作节点分发任务。本公开实施例的整个过程不需要主控节点具有复杂的逻辑,其工作逻辑是直接根据工作节点的心跳数据分发任务即可,无论工作节点增加多少,以及是否存在特殊需求的工作节点,都不需要改变主控节点的工作逻辑,极大的降低了开发和管理难度,提升了系统性能。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开第一实施例提供的分发任务的方法的流程图;
图2为本公开第一实施例提供的获取任务的方法的流程图;
图3为本公开第一实施例提供的主控节点与工作节点交互示意图;
图4为本公开第二实施例提供的分发任务的装置的结构示意图;
图5为本公开第二实施例提供的获取任务的装置的结构示意图;
图6为本公开第四实施例提供的电子设备的结构示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。
本公开第一实施例提供了一种分发任务的方法,该方法的流程如图1所示,包括步骤S101至S103:
S101,主控节点与各个工作节点分别建立gRPC链接。
上述gRPC链接为一种长链接,建立成功后就一直处于链接状态,不用再次建立链接,为后续工作节点发送心跳数据建立了基础通道。
S102,主控节点基于gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数。
S103,主控节点根据心跳数据为工作节点分发任务。
具体实现时,主控节点收到心跳数据后,解析心跳数据,获取其携带的当前工作状态及任务执行策略参数,根据工作节点的当前工作状态及任务执行策略参数为工作节点分发任务。例如,可以将当前工作状态设置为未执行任务和正在执行任务两种状态(当然也可以设置更多的工作状态),则主控节点可以检测工作节点的当前工作状态是否为未执行任务,并在当前工作状态为未执行任务的情况下,主控节点根据任务执行策略参数为工作节点分发任务。
对于上述任务执行策略参数而言,其可以是工作节点自身的设备信息,例如是否具有GPU(图形处理器)或者CPU(中央处理器)的处理能力等,也可以是工作节点自身设备所具有的硬件或软件等信息。当工作节点具有GPU时,其上报的心跳数据中携带有其具有GPU及该GPU的处理能力,则主控节点在确定该工作节点未执行任务时,则会为其分发任务,此时,会根据该工作节点GPU的处理能力为其分发对应的任务,以合理的利用工作节点。
本公开实施例主控节点和各个工作节点之间建立了gRPC链接,工作节点基于gRPC链接可以发送心跳数据,使得主控节点可以知晓工作节点当前工作状态及任务执行策略参数,进而主控节点可以根据当前工作状态及任务执行策略参数为工作节点分发任务。本公开实施例的整个过程不需要主控节点具有复杂的逻辑,其工作逻辑是直接根据工作节点的心跳数据分发任务即可,无论工作节点增加多少,以及是否存在特殊需求的工作节点,都不需要改变主控节点的工作逻辑,极大的降低了开发和管理难度,提升了系统性能。
主控节点负责分发任务,因此,主控节点会存在大量已分发和未分发的任务,这些任务都存储在任务数据表中,具体实现时,可能是一个较大的任务数据表,当然,也可以是很多个任务数据表,以方便修改任务的执行状态,缩短处理时间。
具体实现时,在主控节点根据心跳数据为工作节点分发任务之后,就可以在任务所在的任务数据表中修改任务的执行状态,例如,执行状态由“未处理”修改为“处理中”。该过程为锁定任务的过程,即修改了执行状态的任务就不会被再次分发至别的工作节点,保证了系统的可靠运行。
工作节点在执行任务的过程中,也会持续按照预定周期发送心跳数据,主控节点可以根据心跳数据确定各个工作节点是否正在处理任务或处于可以被分发任务的空闲状态。当工作节点完成一个任务时,会根据任务的编号和当前执行状态生成任务执行结果数据,并向主控节点发送任务执行结果数据。主控节点基于gRPC链接接收来自工作节点的任务执行结果数据,并基于任务执行结果数据中任务的编号查找任务所在的任务数据表,在查找到对应的任务数据表后,就可以根据当前执行状态修改任务数据表中任务的执行状态,例如,执行状态由“处理中”修改为“已完成”。具体实现时,如果主控节点的任务修改失败,则可以再次尝试修改,当修改次数达到预定次数时,就可以告警,例如,在主控节点对应的人机交互界面上显示红色字体。
上述实施例为主控节点分发任务的方法,相对应的,本公开实施例还提供了一种获取任务的方法,应用在工作节点中,其流程如图2所示,包括步骤S201至S203:
S201,工作节点与主控节点建立gRPC链接;
S202,工作节点基于gRPC链接按照预定周期向主控节点发送心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数;
S203,工作节点接收主控节点根据心跳数据分发的任务,并执行任务。
具体实现时,在执行完任务后,工作节点基于gRPC链接向主控节点发送任务执行结果数据,其中,任务执行结果数据至少包括:任务的编号和当前执行状态。在主控节点接收到任务执行结果数据后,就可以根据任务执行结果数据对任务数据表进行相应的操作,具体过程见上述实施例,此处不再赘述。
下面结合图3对上述过程进行示例性说明。
在图3中,一个主控节点控制多个工作节点,每个工作节点均与主控节点建立gRPC链接,以形成数据交互通道。其工作流程如下:
启动主控节点,启动gRPC服务;启动工作节点,与主控节点建立gRPC链接,链接成功后每间隔n秒发送一次心跳数据,其中,每次心跳数据均携带有当前工作节点的当前工作状态、任务执行策略参数;主控节点接收心跳数据后,确定工作节点当前工作状态和执行任务策略参数,并以此决定是否分发任务给该工作节点;在分发任务后,工作节点执行任务,此时继续与主控节点保持心跳数据的发送;当工作节点执行任务完成后,调用主控节点方法回写任务状态,将任务的编号和当前执行状态回写至主控节点的任务数据表中,一个任务流程结束。
本公开实施例实现了一种基于gRPC协议的任务分发方法,主控节点创建任务,工作节点主动拉取待执行任务,使复杂的分布式任务分发功能变得简单易控,降低开发难度,提升工作效率。
本公开第二实施例提供了一种分发任务的装置,该装置应用在主控节点中,其结构示意如图4所示,包括:
第一建链模块10,用于使主控节点与各个工作节点分别建立gRPC链接;第一接收模块20,与第一建链模块10,耦合,用于基于gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数;分发模块30,与第一接收模块20耦合,用于根据心跳数据为工作节点分发任务。
上述gRPC链接为一种长链接,建立成功后就一直处于链接状态,不用再次建立链接,为后续工作节点发送心跳数据建立了基础通道。
具体实现时,主控节点收到心跳数据后,解析心跳数据,获取其携带的当前工作状态及任务执行策略参数,根据工作节点的当前工作状态及任务执行策略参数为工作节点分发任务。例如,可以将当前工作状态设置为未执行任务和正在执行任务两种状态(当然也可以设置更多的工作状态),则上述分发模块具体可以用于:检测工作节点的当前工作状态是否为未执行任务,在当前工作状态为未执行任务的情况下,根据任务执行策略参数为工作节点分发任务。
对于上述任务执行策略参数而言,其可以是工作节点自身的设备信息,例如是否具有GPU(图形处理器)或者CPU(中央处理器)的处理能力等,也可以是工作节点自身设备所具有的硬件或软件等信息。当工作节点具有GPU时,其上报的心跳数据中携带有其具有GPU及该GPU的处理能力,则主控节点在确定该工作节点未执行任务时,则会为其分发任务,此时,会根据该工作节点GPU的处理能力为其分发对应的任务,以合理的利用工作节点。
本公开实施例主控节点和各个工作节点之间建立了gRPC链接,工作节点基于gRPC链接可以发送心跳数据,使得主控节点可以知晓工作节点当前工作状态及任务执行策略参数,进而主控节点可以根据当前工作状态及任务执行策略参数为工作节点分发任务。
主控节点负责分发任务,因此,主控节点会存在大量已分发和未分发的任务,这些任务都存储在任务数据表中,具体实现时,可能是一个较大的任务数据表,当然,也可以是很多个任务数据表,以方便修改任务的执行状态,缩短处理时间。
为了便于管理和保证系统运行的可靠,本公开实施例还可以包括第一修改模块,与分发模块耦合,用于在任务所在的任务数据表中修改任务的执行状态。例如,执行状态由“未处理”修改为“处理中”。该过程为锁定任务的过程,即修改了执行状态的任务就不会被再次分发至别的工作节点,保证了系统的可靠运行。
工作节点在执行任务的过程中,也会持续按照预定周期发送心跳数据,主控节点可以根据心跳数据确定各个工作节点是否正在处理任务或处于可以被分发任务的空闲状态。
当工作节点完成一个任务时,会根据任务的编号和当前执行状态生成任务执行结果数据,并向主控节点发送任务执行结果数据。本公开实施例还可以包括第二接收模块和第二修改模块,其中,第二接收模块,与分发模块耦合,用于基于gRPC链接接收来自工作节点的任务执行结果数据,其中,任务执行结果数据至少包括:任务的编号和当前执行状态;第二修改模块,与第二接收模块耦合,用于基于任务的编号查找任务所在的任务数据表,根据当前执行状态修改任务数据表中任务的执行状态。例如,执行状态由“处理中”修改为“已完成”。具体实现时,如果主控节点的任务修改失败,则可以再次尝试修改,当修改次数达到预定次数时,就可以告警,例如,在主控节点对应的人机交互界面上显示红色字体。
本公开实施例还提供一种获取任务的装置,该装置应用于工作节点中,其结构示意如图5所示,包括:
第二建链模块40,用于工作节点与主控节点建立gRPC链接;第一发送模块50,与第二建链模块40耦合,用于基于gRPC链接按照预定周期向主控节点发送心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数;第三接收模块60,与第一发送模块50耦合,用于接收主控节点根据心跳数据分发的任务;执行模块70,与第三接收模块60耦合,用于执行任务。
上述获取任务的装置还包括第二发送模块,用于在执行完任务后,基于gRPC链接向主控节点发送任务执行结果数据,其中,任务执行结果数据至少包括:任务的编号和当前执行状态。
本公开实施例的整个过程不需要主控节点具有复杂的逻辑,其工作逻辑是直接根据工作节点的心跳数据分发任务即可,无论工作节点增加多少,以及是否存在特殊需求的工作节点,都不需要改变主控节点的工作逻辑,极大的降低了开发和管理难度,提升了系统性能;分发给工作节点的任务都会被修改该任务所在任务数据表中对应的执行状态,进而不会将同一个任务分发给不同的工作节点执行,实现了锁住任务的效果。
本公开第三实施例提供了一种存储介质,该存储介质为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法,包括如下步骤S11至S13:
S11,与各个工作节点分别建立gRPC链接;
S12,基于gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数;
S13,根据心跳数据为工作节点分发任务。
计算机程序被处理器执行根据心跳数据为工作节点分发任务的步骤时,具体被处理器执行如下步骤:检测工作节点的当前工作状态是否为未执行任务;在当前工作状态为未执行任务的情况下,根据任务执行策略参数为工作节点分发任务。
计算机程序被处理器执行根据心跳数据为工作节点分发任务的步骤之后,还被处理器执行如下步骤:在任务所在的任务数据表中修改任务的执行状态。
计算机程序被处理器执行主控节点根据心跳数据为工作节点分发任务的步骤之后,还被处理器执行如下步骤:基于gRPC链接接收来自工作节点的任务执行结果数据,其中,任务执行结果数据至少包括:任务的编号和当前执行状态;基于任务的编号查找任务所在的任务数据表,根据当前执行状态修改任务数据表中任务的执行状态。
本实施例还提供了另一种存储介质,该存储介质为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法,包括如下步骤S21至S23:
S21,与主控节点建立gRPC链接;
S22,基于gRPC链接按照预定周期向主控节点发送心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数;
S23,接收主控节点根据心跳数据分发的任务,并执行任务。
计算机程序被处理器执行执行任务的步骤之后,还被处理器执行如下步骤:基于gRPC链接向主控节点发送任务执行结果数据,其中,任务执行结果数据至少包括:任务的编号和当前执行状态。
本公开实施例的整个过程不需要主控节点具有复杂的逻辑,其工作逻辑是直接根据工作节点的心跳数据分发任务即可,无论工作节点增加多少,以及是否存在特殊需求的工作节点,都不需要改变主控节点的工作逻辑,极大的降低了开发和管理难度,提升了系统性能;分发给工作节点的任务都会被修改该任务所在任务数据表中对应的执行状态,进而不会将同一个任务分发给不同的工作节点执行,实现了锁住任务的效果。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例记载的方法步骤。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本公开的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
本公开第四实施例提供了一种电子设备,该电子设备的结构示意图可以如图6所示,至少包括存储器901和处理器902,存储器901上存储有计算机程序,处理器902在执行存储器901上的计算机程序时实现本公开任意实施例提供的方法。示例性的,电子设备计算机程序步骤如下S31至S33:
S31,与各个工作节点分别建立gRPC链接;
S32,基于gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数;
S33,根据心跳数据为工作节点分发任务。
处理器在执行存储器上存储的根据心跳数据为工作节点分发任务的计算机程序时,具体执行如下计算机程序:检测工作节点的当前工作状态是否为未执行任务;在当前工作状态为未执行任务的情况下,根据任务执行策略参数为工作节点分发任务。
处理器在执行存储器上存储的根据心跳数据为工作节点分发任务的计算机程序之后,还执行如下计算机程序:在任务所在的任务数据表中修改任务的执行状态。
处理器在执行存储器上存储的主控节点根据心跳数据为工作节点分发任务的计算机程序之后,还执行如下计算机程序:基于gRPC链接接收来自工作节点的任务执行结果数据,其中,任务执行结果数据至少包括:任务的编号和当前执行状态;基于任务的编号查找任务所在的任务数据表,根据当前执行状态修改任务数据表中任务的执行状态。
本实施例还提供了另一种电子设备,示例性的,电子设备计算机程序步骤如下S41至S43:
S41,与主控节点建立gRPC链接;
S42,基于gRPC链接按照预定周期向主控节点发送心跳数据,其中,心跳数据携带有工作节点的当前工作状态及任务执行策略参数;
S43,接收主控节点根据心跳数据分发的任务,并执行任务。
处理器在执行存储器上存储的执行任务的计算机程序之后,还执行如下计算机程序:基于gRPC链接向主控节点发送任务执行结果数据,其中,任务执行结果数据至少包括:任务的编号和当前执行状态。
本公开实施例的整个过程不需要主控节点具有复杂的逻辑,其工作逻辑是直接根据工作节点的心跳数据分发任务即可,无论工作节点增加多少,以及是否存在特殊需求的工作节点,都不需要改变主控节点的工作逻辑,极大的降低了开发和管理难度,提升了系统性能;分发给工作节点的任务都会被修改该任务所在任务数据表中对应的执行状态,进而不会将同一个任务分发给不同的工作节点执行,实现了锁住任务的效果。
此外,尽管已经在本文中描述了示例性实施例,其范围包括任何和所有基于本公开的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施例。权利要求书中的元件将被基于权利要求中采用的语言宽泛地解释,并不限于在本说明书中或本申请的实施期间所描述的示例,其示例将被解释为非排他性的。因此,本说明书和示例旨在仅被认为是示例,真正的范围和精神由以下权利要求以及其等同物的全部范围所指示。
以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或更多方案)可以彼此组合使用。例如本领域普通技术人员在阅读上述描述时可以使用其它实施例。另外,在上述具体实施方式中,各种特征可以被分组在一起以简单化本公开。这不应解释为一种不要求保护的公开的特征对于任一权利要求是必要的意图。相反,本公开的主题可以少于特定的公开的实施例的全部特征。从而,以下权利要求书作为示例或实施例在此并入具体实施方式中,其中每个权利要求独立地作为单独的实施例,并且考虑这些实施例可以以各种组合或排列彼此组合。本公开的范围应参照所附权利要求以及这些权利要求赋权的等同形式的全部范围来确定。
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本领域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围之内。
Claims (10)
1.一种分发任务的方法,其特征在于,包括:
主控节点与各个工作节点分别建立gRPC链接;
所述主控节点基于所述gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,所述心跳数据携带有所述工作节点的当前工作状态及任务执行策略参数;
所述主控节点根据所述心跳数据为所述工作节点分发任务。
2.如权利要求1所述的方法,其特征在于,所述主控节点根据所述心跳数据为所述工作节点分发任务,包括:
所述主控节点检测所述工作节点的所述当前工作状态是否为未执行任务;
在所述当前工作状态为未执行任务的情况下,所述主控节点根据所述任务执行策略参数为所述工作节点分发任务。
3.如权利要求1或2所述的方法,其特征在于,所述主控节点根据所述心跳数据为所述工作节点分发任务之后,还包括:
所述主控节点在所述任务所在的任务数据表中修改所述任务的执行状态。
4.如权利要求3所述的方法,其特征在于,所述主控节点根据所述心跳数据为所述工作节点分发任务之后,还包括:
所述主控节点基于所述gRPC链接接收来自所述工作节点的任务执行结果数据,其中,所述任务执行结果数据至少包括:任务的编号和当前执行状态;
所述主控节点基于所述任务的编号查找所述任务所在的任务数据表,根据所述当前执行状态修改所述任务数据表中所述任务的执行状态。
5.一种获取任务的方法,其特征在于,包括:
工作节点与主控节点建立gRPC链接;
所述工作节点基于所述gRPC链接按照预定周期向所述主控节点发送心跳数据,其中,所述心跳数据携带有所述工作节点的当前工作状态及任务执行策略参数;
所述工作节点接收所述主控节点根据所述心跳数据分发的任务,并执行所述任务。
6.如权利要求5所述的方法,其特征在于,所述执行所述任务之后,还包括:
所述工作节点基于所述gRPC链接向所述主控节点发送任务执行结果数据,其中,所述任务执行结果数据至少包括:任务的编号和当前执行状态。
7.一种分发任务的装置,其特征在于,包括:
第一建链模块,用于使主控节点与各个工作节点分别建立gRPC链接;
第一接收模块,用于基于所述gRPC链接接收工作节点按照预定周期发送的心跳数据,其中,所述心跳数据携带有所述工作节点的当前工作状态及任务执行策略参数;
分发模块,用于根据所述心跳数据为所述工作节点分发任务。
8.一种获取任务的装置,其特征在于,包括:
第二建链模块,用于工作节点与主控节点建立gRPC链接;
第一发送模块,用于基于所述gRPC链接按照预定周期向所述主控节点发送心跳数据,其中,所述心跳数据携带有所述工作节点的当前工作状态及任务执行策略参数;
第三接收模块,用于接收所述主控节点根据所述心跳数据分发的任务;
执行模块,用于执行所述任务。
9.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述方法的步骤,或者,所述计算机程序被处理器执行时实现权利要求5或6所述方法的步骤。
10.一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现权利要求1至4中任一项所述方法的步骤,或者,所述处理器在执行所述存储器上的计算机程序时实现权利要求5或6所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110057004.3A CN112804334A (zh) | 2021-01-15 | 2021-01-15 | 分发及获取任务的方法、装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110057004.3A CN112804334A (zh) | 2021-01-15 | 2021-01-15 | 分发及获取任务的方法、装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112804334A true CN112804334A (zh) | 2021-05-14 |
Family
ID=75809811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110057004.3A Pending CN112804334A (zh) | 2021-01-15 | 2021-01-15 | 分发及获取任务的方法、装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112804334A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026490A (zh) * | 2007-01-26 | 2007-08-29 | 华为技术有限公司 | 实现业务分发与同步的设备、系统及方法 |
US20140245298A1 (en) * | 2013-02-27 | 2014-08-28 | Vmware, Inc. | Adaptive Task Scheduling of Hadoop in a Virtualized Environment |
CN106933662A (zh) * | 2017-03-03 | 2017-07-07 | 广东神马搜索科技有限公司 | 分布式系统及其调度方法和调度装置 |
CN107688496A (zh) * | 2017-07-24 | 2018-02-13 | 上海壹账通金融科技有限公司 | 任务分布式处理方法、装置、存储介质和服务器 |
CN111181765A (zh) * | 2019-12-03 | 2020-05-19 | 中国建设银行股份有限公司 | 一种任务处理方法和装置 |
CN112051993A (zh) * | 2020-08-17 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 状态机模板的生成及任务处理方法、装置、介质及设备 |
-
2021
- 2021-01-15 CN CN202110057004.3A patent/CN112804334A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026490A (zh) * | 2007-01-26 | 2007-08-29 | 华为技术有限公司 | 实现业务分发与同步的设备、系统及方法 |
US20140245298A1 (en) * | 2013-02-27 | 2014-08-28 | Vmware, Inc. | Adaptive Task Scheduling of Hadoop in a Virtualized Environment |
CN106933662A (zh) * | 2017-03-03 | 2017-07-07 | 广东神马搜索科技有限公司 | 分布式系统及其调度方法和调度装置 |
CN107688496A (zh) * | 2017-07-24 | 2018-02-13 | 上海壹账通金融科技有限公司 | 任务分布式处理方法、装置、存储介质和服务器 |
CN111181765A (zh) * | 2019-12-03 | 2020-05-19 | 中国建设银行股份有限公司 | 一种任务处理方法和装置 |
CN112051993A (zh) * | 2020-08-17 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 状态机模板的生成及任务处理方法、装置、介质及设备 |
Non-Patent Citations (1)
Title |
---|
朱荣鑫 等: "《Go语言高并发与微服务实战》", 30 April 2020 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502340A (zh) | 一种资源动态调整方法、装置、设备及存储介质 | |
CN105744008B (zh) | 智能家居平台、应用于该平台的系统更新方法和装置 | |
CN107491346A (zh) | 一种应用的任务处理方法、装置及系统 | |
CN110557416B (zh) | 一种多节点协同打块的方法及系统 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN110912972A (zh) | 一种业务处理方法、系统、电子设备及可读存储介质 | |
US10768974B2 (en) | Specifying an order of a plurality of resources in a transaction according to distance | |
CN110609755A (zh) | 跨区块链节点的消息处理方法及装置、设备、介质 | |
CN109885612A (zh) | 区块链智能合约的同步生效方法及装置 | |
CN107222618A (zh) | 终端截屏方法及装置 | |
CN107463390B (zh) | 一种软件升级方法及升级服务器 | |
CN111541762A (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN111158800A (zh) | 基于映射关系构建任务dag的方法及装置 | |
CN113467908B (zh) | 任务执行方法、装置、计算机可读存储介质及终端设备 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
US9323509B2 (en) | Method and system for automated process distribution | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN112804334A (zh) | 分发及获取任务的方法、装置、存储介质、电子设备 | |
CN108984105B (zh) | 对网络存储设备中的复制任务进行分配的方法和设备 | |
CN109040491A (zh) | 挂机行为处理方法、装置、计算机设备及存储介质 | |
CN110308914A (zh) | 升级处理方法、装置、设备、系统及计算机可读存储介质 | |
CN114741162A (zh) | 服务编排方法、装置、存储介质和设备 | |
CN110569115B (zh) | 多点部署的进程管理方法及进程的争夺方法 | |
CN115269161B (zh) | 一种异常流程逆向回滚方法和系统 | |
CN113742052B (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 |