CN108446171A - 电子装置、分布式系统执行任务分配方法及存储介质 - Google Patents
电子装置、分布式系统执行任务分配方法及存储介质 Download PDFInfo
- Publication number
- CN108446171A CN108446171A CN201810102250.4A CN201810102250A CN108446171A CN 108446171 A CN108446171 A CN 108446171A CN 201810102250 A CN201810102250 A CN 201810102250A CN 108446171 A CN108446171 A CN 108446171A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- service node
- coding
- pending
- 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.)
- Granted
Links
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/505—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 load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
本发明提出一种电子装置、分布式系统任务分配方法及存储介质,通过监测分布式系统各个服务节点执行的任务以及所述任务的执行状态生成各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;在接收到任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码与所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。能够防止不同服务节点出现漏执行或者重复执行的问题,提高分布式系统任务执行的准确性。
Description
技术领域
本发明涉及分布式系统领域,尤其涉及一种电子装置、分布式系统任务分配方法及存储介质。
背景技术
目前,随着互联网技术的发展以及应用的普及,分布式系统的应用也越来越广泛,例如,企业的后台服务系统以及数据管理系统等。通常分布式系统为由多个服务器组成的服务器集群,服务器集群中的每台服务器可以作为一个服务节点来单独执行任务,实现了多任务同步执行,提高了执行任务的效率,但是分布式系统通常会出现多个服务节点故障事件,并且节点故障事件会相互重叠,导致不同服务节点执行的任务可能被漏执行或者重复执行的问题出现,显著影响任务执行的准确性。
发明内容
有鉴于此,本发明提出一种电子装置、分布式系统任务分配方法及存储介质,能够根据分布式系统中各个服务节点执行任务的任务识别编码及待执行任务的任务识别编码,防止不同服务节点出现漏执行或者重复执行的问题,提高分布式系统任务执行的准确性。
首先,为实现上述目的,本发明提出一种电子装置,所述电子装置包括存储器、及与所述存储器连接的处理器,所述处理器用于执行所述存储器上存储的分布式系统任务分配程序,所述分布式系统任务分配程序被所述处理器执行时实现如下步骤:
A1、监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;
A2、在接收到新的任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;
A3、根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。
进一步地,所述根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码的步骤,具体包括:
获取所述任务执行指令中待执行任务的第二名称、及接收到所述任务执行指令的第二时间;
根据所述第二名称及所述第二时间生成包括所述第二名称及所述第二时间的任务识别编码。
进一步地,所述任务执行编码包括监测到的任务对应的第一名称、监测到执行任务的第一时间;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
将所述第二名称分别与所述第一名称进行匹配,若有第一名称与所述第二名称相匹配,则获取相匹配的第一名称对应的任务执行编码中的第一时间;
计算该第一时间与所述第二时间的时间差值,若所述时间差值小于预设的时间差阈值,则向各个服务节点发出拒绝执行所述待执行任务的指令;
若没有第一名称与所述第二名称相匹配,则根据预设的时间频率同时向各个服务节点发送执行所述第二任务的请求,并在监测到有服务节点响应该请求并开始执行所述第二任务后,向除该服务节点之外的其他各个服务节点发送不再执行所述第二任务的指令;
根据所述预先确定的任务执行编码生成规则生成所述第二任务对应的任务执行编码,将生成的任务执行编码存入所述预先确定的数据库中。
进一步地,所述任务执行编码包括执行任务的状态,所述执行任务的状态包括任务执行中、任务待执行、以及任务执行完成;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
若检测到有服务节点的执行任务的状态为任务执行中或者任务待执行,则确定向该服务节点发出拒绝执行所述待执行任务的指令;
或者,若检测到有服务节点的执行任务的状态为任务执行完成,则确定向该服务节点发送执行所述待执行任务的指令。
进一步地,所述第一时间与所述第二时间具有相同的时间单位。
此外,为实现上述目的,本发明还提供一种分布式系统任务分配方法,该方法包括如下步骤:
S1、监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;
S2、在接收到新的任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;
S3、根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。
进一步地,所述根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码的步骤,具体包括
获取所述任务执行指令中待执行任务的第二名称、及接收到所述任务执行指令的第二时间;
根据所述第二名称及所述第二时间生成包括所述第二名称及所述第二时间的任务识别编码。
进一步地,所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
将所述第二名称分别与所述第一名称进行匹配,若有第一名称与所述第二名称相匹配,则获取相匹配的第一名称对应的任务执行编码中的第一时间;
计算该第一时间与所述第二时间的时间差值,若所述时间差值小于预设的时间差阈值,则向各个服务节点发出拒绝执行所述待执行任务的指令;
若没有第一名称与所述第二名称相匹配,则根据预设的时间频率同时向各个服务节点发送执行所述第二任务的请求,并在监测到有服务节点响应该请求并开始执行所述第二任务后,向除该服务节点之外的其他各个服务节点发送不再执行所述第二任务的指令;
根据所述预先确定的任务执行编码生成规则生成所述第二任务对应的任务执行编码,将生成的任务执行编码存入所述预先确定的数据库中。
进一步地,所述任务执行编码包括执行任务的状态,所述执行任务的状态包括任务执行中、任务待执行、以及任务执行完成;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
若检测到有服务节点的执行任务的状态为任务执行中或者任务待执行,则确定向该服务节点发出拒绝执行所述待执行任务的指令;
或者,若检测到有服务节点的执行任务的状态为任务执行完成,则确定向该服务节点发送执行所述待执行任务的指令。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有分布式系统任务分配程序,所述分布式系统任务分配程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的分布式系统任务分配方法的步骤。
相较于现有技术,本发明所提出的电子装置、分布式系统任务分配方法及存储介质,通过监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;在接收到任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。能够根据分布式系统中各个服务节点执行任务的任务识别编码及待执行任务的任务识别编码,防止不同服务节点出现漏执行或者重复执行的问题,提高分布式系统任务执行的准确性。
附图说明
图1是本发明提出的电子装置一可选的硬件架构的示意图;
图2是本发明电子装置一实施例中分布式系统任务分配程序的程序模块示意图;
图3是本发明分布式系统任务分配方法较佳实施例的实施流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是本发明提出的电子装置一可选的硬件架构示意图。本实施例中,电子装置10可包括,但不仅限于,可通过通信总线14相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-14的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,存储器11至少包括一种类型的计算机可读存储介质,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器11可以是电子装置10的内部存储单元,例如电子装置10的硬盘或内存。在另一些实施例中,存储器11也可以是电子装置10的外包存储设备,例如电子装置10上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器11还可以既包括电子装置10的内部存储单元也包括其外包存储设备。本实施例中,存储器11通常用于存储安装于电子装置10的操作系统和各类应用软件,例如分布式系统任务分配程序等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。处理器12通常用于控制电子装置10的总体操作。本实施例中,处理器12用于运行存储器11中存储的程序代码或者处理数据,例如运行的分布式系统任务分配程序等。
网络接口13可包括无线网络接口或有线网络接口,网络接口13通常用于在电子装置10与其他电子设备之间建立通信连接。
通信总线14用于实现组件11-13之间的通信连接。
图1仅示出了具有组件11-14以及分布式系统任务分配程序的电子装置10,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,电子装置10还可以包括用户接口(图1中未示出),用户接口可以包括显示器、输入单元比如键盘,其中,用户接口还可以包括标准的有线接口、无线接口等。
可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED触摸器等。进一步地,显示器也可称为显示屏或显示单元,用于显示在电子装置10中处理信息以及用于显示可视化的用户界面。
在一实施例中,存储器11中存储的分布式系统任务分配程序被处理器12执行时,实现如下操作:
A、监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;
在本实施例中,所述任务执行编码包括监测到的任务对应的第一名称、监测到执行任务的第一时间;
B、在接收到任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;
在本实施例中,所述预先确定的任务识别编码生成规则包括获取所述任务执行指令中待执行任务的第二名称、及接收到所述任务执行指令的第二时间,生成包括所述第二名称及所述第二时间的任务识别编码;
C、根据预先确定的任务分配分析规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。
在本实施例中,所述根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码的步骤,具体包括:
获取所述任务执行指令中待执行任务的第二名称、及接收到所述任务执行指令的第二时间;
根据所述第二名称及所述第二时间生成包括所述第二名称及所述第二时间的任务识别编码。
进一步地,在本实施例中,所述任务执行编码包括监测到的任务对应的第一名称、监测到执行任务的第一时间;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
将所述第二名称分别与所述第一名称进行匹配,若有所述第一名称与所述第二名称相匹配,则获取相匹配的第一名称对应的任务执行编码中的第一时间;计算该第一时间与所述第二时间的时间差值,若所述时间差值小于预设的时间差阈值(例如3分钟),则向各个服务节点发出拒绝执行所述待执行任务的指令;
若没有第一名称与所述第二名称相匹配,则根据预设的时间频率(例如每隔10分钟)同时向各个服务节点发送执行所述第二任务的请求,并在监测到有服务节点响应该请求并开始执行所述第二任务后,向除该服务节点之外的其他各个服务节点发送不再执行所述第二任务的指令;
根据所述预先确定的任务执行编码生成规则生成所述第二任务对应的任务执行编码,将生成的任务执行编码存入所述预先确定的数据库中。
在本实施例中,所述任务执行编码还包括监测到的任务执行状态,所述任务执行状态包括执行中、待执行、以及执行完成。
在本发明的另一实施例中,例如,假设分布式系统包括4台服务器,分别为服务器a、服务器b、服务器c、以及服务器d,且4台服务器都启动线程工作(这里需要说明的是,4台服务器启动线程的时间是相同的,但是由于各个服务器本身设置的时钟有可能不同步,或者服务器启动线程所用的时间本身存在差异等原因,导致各台服务器启动线程的时间存在微小差异),实时监测到的该4台服务器执行的任务以及任务的执行状态,并存入预先确定的数据库中的任务执行编码为:W12017101115:20正在执行中,W22017101115:40已响应请求,等待执行中,在本实施例中,为了理解方便,将存入预先确定的数据库中的任务执行编码用表格表示如下:
任务名称 | 任务时间 | 任务状态 |
W1 | 2017101115:20 | 执行中 |
W2 | 2017101115:40 | 待执行 |
假设在2017年10月11日15点40分钟接收到执行第二任务的指令,第二名称为分钟统计,则生成的任务识别编码为:分钟统计2017101115:40;经过可知,预先确定的数据库中存储的任务执行编码的第一名称为W1、W2不存在第二名称(分钟统计)的任务,则按照预设的时间频率(例如每隔10分钟)同时向服务器a、服务器b、服务器c、以及服务器d发送该分钟统计的任务请求,若监测到服务器a响应分钟统计任务请求且任务执行状态为等待执行,服务器b也响应分钟统计的任务请求且任务状态为执行中,则确定服务器b执行所述分钟统计的任务,并向所述服务器a、所述服务器c、以及所述服务器d发出不再执行所述分钟统计任务的指令,根据预先确定的任务执行编码生成规则生成第二任务对应的任务执行编码,并将生成的任务执行编码存入所述预先确定的数据库。则服务器b执行所述分钟统计任务,且服务器a、服务器c、和服务器d不再执行所述分钟统计任务。
在本实施例中,所述第一时间与所述第二时间具有相同的时间单位,例如所述第一时间以及所述第二时间可以是均以分钟为单位,或者,所述第一时间以及所述第二时间还可以均以秒为单位。
在本实施例中,在所述预先确定的数据库中存入生成的任务执行编码后,用上述表格形象表示如下:
任务名称 | 任务时间 | 任务状态 |
分钟统计任务 | 20171011 15:20 | 执行中 |
W1 | 2017101115:20 | 执行中 |
W2 | 2017101115:40 | 待执行 |
由上述事实施例可知,本发明提出的电子装置通过实时或定时监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;在接收到任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码与所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。能够防止不同服务节点出现漏执行或者重复执行的问题,提高分布式系统任务执行的效率。
进一步需要说明的是,本发明的分布式系统任务分配程序依据其各部分所实现的功能不同,可用具有相同功能的程序模块进行描述。
请参阅图2所示,是本发明电子装置一实施例中分布式系统任务分配程序的程序模块示意图。本实施例中,分布式系统任务分配程序依据其各部分所实现的功能的不同,可以被分割成监测模块201、生成模块202、确定模块203。由上面的描述可知,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述分布式系统任务分配程序在电子装置10中的执行过程。所述模块201-203所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:
监测模块201用于监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;
生成模块202用于在接收到新的任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;
确定模块203用于根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。
此外,本发明还提出一种分布式系统任务分配方法,请参阅图3所示,为本发明分布式系统任务分配方法较佳实施例的实施流程图。由图3可知,所述分布式系统任务分配方法被所述处理器12执行时实现包括如下步骤:
步骤S301,监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;
在本实施例中,所述任务执行编码包括监测到的任务对应的第一名称、监测到执行任务的第一时间;
步骤S302,在接收到新的任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;
在本实施例中,所述预先确定的任务识别编码生成规则包括获取所述任务执行指令中待执行任务的第二名称、及接收到所述任务执行指令的第二时间,生成包括所述第二名称及所述第二时间的任务识别编码;
步骤S303,根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。
在本实施例中,所述根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码的步骤,具体包括:
获取所述任务执行指令中待执行任务的第二名称、及接收到所述任务执行指令的第二时间;
根据所述第二名称及所述第二时间生成包括所述第二名称及所述第二时间的任务识别编码。
进一步地,在本实施例中,所述任务执行编码包括监测到的任务对应的第一名称、监测到执行任务的第一时间;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
将所述第二名称分别与所述第一名称进行匹配,若有所述第一名称与所述第二名称相匹配,则获取相匹配的第一名称对应的任务执行编码中的第一时间;计算该第一时间与所述第二时间的时间差值,若所述时间差值小于预设的时间差阈值(例如3分钟),则向各个服务节点发出拒绝执行所述待执行任务的指令;
若没有第一名称与所述第二名称相匹配,则根据预设的时间频率(例如每隔10分钟)同时向各个服务节点发送执行所述第二任务的请求,并在监测到有服务节点响应该请求并开始执行所述第二任务后,向除该服务节点之外的其他各个服务节点发送不再执行所述第二任务的指令;
根据所述预先确定的任务执行编码生成规则生成所述第二任务对应的任务执行编码,将生成的任务执行编码存入所述预先确定的数据库中。
在本实施例中,所述任务执行编码还包括监测到的任务执行状态,所述任务执行状态包括执行中、待执行、以及执行完成。
在本发明的另一实施例中,例如,假设分布式系统包括4台服务器,分别为服务器a、服务器b、服务器c、以及服务器d,且4台服务器都启动线程工作(这里需要说明的是,4台服务器启动线程的时间是相同的,但是由于各个服务器本身设置的时钟有可能不同步,或者服务器启动线程所用的时间本身存在差异等原因,导致各台服务器启动线程的时间存在微小差异),实时监测到的该4台服务器执行的任务以及任务的执行状态,并存入预先确定的数据库中的任务执行编码为:W12017101115:20正在执行中,W22017101115:40已响应请求,等待执行中,在本实施例中,为了理解方便,将存入预先确定的数据库中的任务执行编码用表格表示如下:
任务名称 | 任务时间 | 任务状态 |
W1 | 2017101115:20 | 执行中 |
W2 | 2017101115:40 | 待执行 |
假设在2017年10月11日15点40分钟接收到执行第二任务的指令,第二名称为分钟统计,则生成的任务识别编码为:分钟统计2017101115:40;经过可知,预先确定的数据库中存储的任务执行编码的第一名称为W1、W2不存在第二名称(分钟统计)的任务,则按照预设的时间频率(例如每隔10分钟)同时向服务器a、服务器b、服务器c、以及服务器d发送该分钟统计的任务请求,若监测到服务器a响应分钟统计任务请求且任务执行状态为等待执行,服务器b也响应分钟统计的任务请求且任务状态为执行中,则确定服务器b执行所述分钟统计的任务,并向所述服务器a、所述服务器c、以及所述服务器d发出不再执行所述分钟统计任务的指令,根据预先确定的任务执行编码生成规则生成第二任务对应的任务执行编码,并将生成的任务执行编码存入所述预先确定的数据库。则服务器b执行所述分钟统计任务,且服务器a、服务器c、和服务器d不再执行所述分钟统计任务。
在本实施例中,所述第一时间与所述第二时间具有相同的时间单位;例如,所述第一时间以及所述第二时间均以分钟为单位,或者,所述第一时间以及所述第二时间还可以是均以秒为单位。
在本实施例中,在所述预先确定的数据库中存入生成的任务执行编码后,用上述表格形象表示如下:
任务名称 | 任务时间 | 任务状态 |
分钟统计任务 | 20171011 15:20 | 执行中 |
W1 | 2017101115:20 | 执行中 |
W2 | 2017101115:40 | 待执行 |
由上述事实施例可知,本发明提出的分布式系统任务分配方法通过监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;在接收到任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码与所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。能够防止不同服务节点出现漏执行或者重复执行的问题,提高分布式系统任务执行的效率。
此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有分布式系统任务分配程序,所述分布式系统任务分配程序被处理器执行时实现如下操作:
监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;
在接收到新的任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;
根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。
本发明计算机可读存储介质具体实施方式与上述电子装置以及基于负载权重调度发布升级版本应用的方法各实施例基本相同,在此不作累述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种电子装置,其特征在于,所述电子装置包括存储器、及与所述存储器连接的处理器,所述处理器用于执行所述存储器上存储的分布式系统任务分配程序,所述分布式系统任务分配程序被所述处理器执行时实现如下步骤:
A1、监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;
A2、在接收到新的任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;
A3、根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。
2.如权利要求1所述的电子装置,其特征在于,所述根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码的步骤,具体包括:
获取所述任务执行指令中待执行任务的第二名称、及接收到所述任务执行指令的第二时间;
根据所述第二名称及所述第二时间生成包括所述第二名称及所述第二时间的任务识别编码。
3.如权利要求2所述的电子装置,其特征在于,所述任务执行编码包括监测到的任务对应的第一名称、监测到执行任务的第一时间;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
将所述第二名称分别与所述第一名称进行匹配,若有第一名称与所述第二名称相匹配,则获取相匹配的第一名称对应的任务执行编码中的第一时间;
计算该第一时间与所述第二时间的时间差值,若所述时间差值小于预设的时间差阈值,则向各个服务节点发出拒绝执行所述待执行任务的指令;
若没有第一名称与所述第二名称相匹配,则根据预设的时间频率同时向各个服务节点发送执行所述第二任务的请求,并在监测到有服务节点响应该请求并开始执行所述第二任务后,向除该服务节点之外的其他各个服务节点发送不再执行所述第二任务的指令;
根据所述预先确定的任务执行编码生成规则生成所述第二任务对应的任务执行编码,将生成的任务执行编码存入所述预先确定的数据库中。
4.如权利要求3所述的电子装置,其特征在于,所述任务执行编码还包括执行任务的状态,所述执行任务的状态包括任务执行中、任务待执行、以及任务执行完成;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
若检测到有服务节点的执行任务的状态为任务执行中或者任务待执行,则确定向该服务节点发出拒绝执行所述待执行任务的指令;
或者,若检测到有服务节点的执行任务的状态为任务执行完成,则确定向该服务节点发送执行所述待执行任务的指令。
5.如权利要求3所述的电子装置,其特征在于,所述第一时间与所述第二具有相同的时间单位。
6.一种分布式系统任务分配方法,其特征在于,所述方法包括如下步骤:
S1、监测分布式系统各个服务节点执行的任务以及所述任务的执行状态,根据监测到的任务以及任务的执行状态生成所述分布式系统各个服务节点的任务执行编码,将所述任务执行编码存储在预先确定的数据库中;
S2、在接收到新的任务执行指令后,根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码;
S3、根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令。
7.如权利要求6所述的分布式系统任务分配方法,其特征在于,所述根据预先确定的任务识别编码生成规则生成接收到的任务执行指令中待执行任务的任务识别编码的步骤,具体包括
获取所述任务执行指令中待执行任务的第二名称、及接收到所述任务执行指令的第二时间;
根据所述第二名称及所述第二时间生成包括所述第二名称及所述第二时间的任务识别编码。
8.如权利要求7所述的分布式系统任务分配方法,其特征在于,所述任务执行编码包括监测到的任务对应的第一名称、监测到执行任务的第一时间;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
将所述第二名称分别与所述第一名称进行匹配,若有第一名称与所述第二名称相匹配,则获取相匹配的第一名称对应的任务执行编码中的第一时间;
计算该第一时间与所述第二时间的时间差值,若所述时间差值小于预设的时间差阈值,则向各个服务节点发出拒绝执行所述待执行任务的指令;
若没有第一名称与所述第二名称相匹配,则根据预设的时间频率同时向各个服务节点发送执行所述第二任务的请求,并在监测到有服务节点响应该请求并开始执行所述第二任务后,向除该服务节点之外的其他各个服务节点发送不再执行所述第二任务的指令;
根据所述预先确定的任务执行编码生成规则生成所述第二任务对应的任务执行编码,将生成的任务执行编码存入所述预先确定的数据库中。
9.如权利要求7或8所述的分布式任务系统分配方法,其特征在于,所述任务执行编码包括执行任务的状态,所述执行任务的状态包括任务执行中、任务待执行、以及任务执行完成;所述根据预先确定的任务分配规则分析所述预先确定的数据库中存储的任务执行编码及所述任务识别编码,确定执行所述待执行任务的服务节点,或者确定向各个服务节点发出拒绝执行所述待执行任务的指令的步骤,具体包括:
若检测到有服务节点的执行任务的状态为任务执行中或者任务待执行,则确定向该服务节点发出拒绝执行所述待执行任务的指令;
或者,若检测到有服务节点的执行任务的状态为任务执行完成,则确定向该服务节点发送执行所述待执行任务的指令。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有分布式系统任务分配程序,所述分布式任务系统分配程序可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求6-9中任一项所述的分布式任务系统分配方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810102250.4A CN108446171B (zh) | 2018-02-01 | 2018-02-01 | 电子装置、分布式系统执行任务分配方法及存储介质 |
PCT/CN2018/089873 WO2019148728A1 (zh) | 2018-02-01 | 2018-06-05 | 电子装置、分布式系统执行任务分配方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810102250.4A CN108446171B (zh) | 2018-02-01 | 2018-02-01 | 电子装置、分布式系统执行任务分配方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108446171A true CN108446171A (zh) | 2018-08-24 |
CN108446171B CN108446171B (zh) | 2022-07-08 |
Family
ID=63191699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810102250.4A Active CN108446171B (zh) | 2018-02-01 | 2018-02-01 | 电子装置、分布式系统执行任务分配方法及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108446171B (zh) |
WO (1) | WO2019148728A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245009A (zh) * | 2019-05-14 | 2019-09-17 | 平安科技(深圳)有限公司 | 周期任务分配方法、装置、计算机设备和存储介质 |
CN112085346A (zh) * | 2020-08-18 | 2020-12-15 | 远光软件股份有限公司 | 基于日历的安全检查工作展示方法、装置及电子设备 |
CN112099958A (zh) * | 2020-11-17 | 2020-12-18 | 深圳壹账通智能科技有限公司 | 分布式多任务管理方法、装置、计算机设备及存储介质 |
CN114666389A (zh) * | 2022-03-14 | 2022-06-24 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032188B (zh) * | 2019-12-24 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 确定主服务器的方法、装置、服务器及存储介质 |
CN114327819B (zh) * | 2021-12-24 | 2023-02-03 | 北京百度网讯科技有限公司 | 一种任务管理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2007203220A1 (en) * | 2006-07-31 | 2008-02-14 | Accenture Global Services Limited | Work allocation model |
US20140108861A1 (en) * | 2012-10-15 | 2014-04-17 | Hadapt, Inc. | Systems and methods for fault tolerant, adaptive execution of arbitrary queries at low latency |
CN104468174A (zh) * | 2013-09-25 | 2015-03-25 | 北京新媒传信科技有限公司 | 一种集群服务器执行任务的方法和装置 |
US20160226966A1 (en) * | 2013-10-15 | 2016-08-04 | Tencent Technology (Shenzhen) Company Limited | Task management among multiple servers |
US9455881B2 (en) * | 2012-10-26 | 2016-09-27 | International Business Machines Corporation | Method for determining system topology graph changes in a distributed computing system |
CN106227596A (zh) * | 2016-07-13 | 2016-12-14 | 百度在线网络技术(北京)有限公司 | 用于任务调度服务器的任务监控方法和装置 |
CN107329820A (zh) * | 2016-04-28 | 2017-11-07 | 杭州海康威视数字技术股份有限公司 | 一种用于集群系统的任务处理方法及装置 |
WO2018012872A1 (ko) * | 2016-07-14 | 2018-01-18 | 주식회사 코인플러그 | 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8640137B1 (en) * | 2010-08-30 | 2014-01-28 | Adobe Systems Incorporated | Methods and apparatus for resource management in cluster computing |
CN102360310B (zh) * | 2011-09-28 | 2014-03-26 | 中国电子科技集团公司第二十八研究所 | 一种分布式系统环境下的多任务进程监视方法 |
CN104503845B (zh) * | 2015-01-14 | 2017-07-14 | 北京邮电大学 | 一种任务分发方法和系统 |
CN106850747B (zh) * | 2016-12-23 | 2020-03-20 | 上海网达软件股份有限公司 | 一种分布式实时转码系统的转码节点管理系统及方法 |
-
2018
- 2018-02-01 CN CN201810102250.4A patent/CN108446171B/zh active Active
- 2018-06-05 WO PCT/CN2018/089873 patent/WO2019148728A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2007203220A1 (en) * | 2006-07-31 | 2008-02-14 | Accenture Global Services Limited | Work allocation model |
US20140108861A1 (en) * | 2012-10-15 | 2014-04-17 | Hadapt, Inc. | Systems and methods for fault tolerant, adaptive execution of arbitrary queries at low latency |
US9455881B2 (en) * | 2012-10-26 | 2016-09-27 | International Business Machines Corporation | Method for determining system topology graph changes in a distributed computing system |
CN104468174A (zh) * | 2013-09-25 | 2015-03-25 | 北京新媒传信科技有限公司 | 一种集群服务器执行任务的方法和装置 |
US20160226966A1 (en) * | 2013-10-15 | 2016-08-04 | Tencent Technology (Shenzhen) Company Limited | Task management among multiple servers |
CN107329820A (zh) * | 2016-04-28 | 2017-11-07 | 杭州海康威视数字技术股份有限公司 | 一种用于集群系统的任务处理方法及装置 |
CN106227596A (zh) * | 2016-07-13 | 2016-12-14 | 百度在线网络技术(北京)有限公司 | 用于任务调度服务器的任务监控方法和装置 |
WO2018012872A1 (ko) * | 2016-07-14 | 2018-01-18 | 주식회사 코인플러그 | 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245009A (zh) * | 2019-05-14 | 2019-09-17 | 平安科技(深圳)有限公司 | 周期任务分配方法、装置、计算机设备和存储介质 |
CN110245009B (zh) * | 2019-05-14 | 2024-03-08 | 平安科技(深圳)有限公司 | 周期任务分配方法、装置、计算机设备和存储介质 |
CN112085346A (zh) * | 2020-08-18 | 2020-12-15 | 远光软件股份有限公司 | 基于日历的安全检查工作展示方法、装置及电子设备 |
CN112099958A (zh) * | 2020-11-17 | 2020-12-18 | 深圳壹账通智能科技有限公司 | 分布式多任务管理方法、装置、计算机设备及存储介质 |
CN114666389A (zh) * | 2022-03-14 | 2022-06-24 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
CN114666389B (zh) * | 2022-03-14 | 2024-05-17 | 京东科技信息技术有限公司 | 分布式系统中节点状态的检测方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108446171B (zh) | 2022-07-08 |
WO2019148728A1 (zh) | 2019-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446171A (zh) | 电子装置、分布式系统执行任务分配方法及存储介质 | |
WO2021142609A1 (zh) | 信息上报方法、装置、设备和存储介质 | |
CN107733708B (zh) | 设备参数配置方法、装置、计算机设备和存储介质 | |
KR100509794B1 (ko) | 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법 | |
CN108717379B (zh) | 电子装置、分布式任务调度方法及存储介质 | |
CN108845816A (zh) | 应用程序更新方法、系统、计算机设备及存储介质 | |
CN108494771A (zh) | 电子装置、防火墙开通验证方法及存储介质 | |
CN109766172B (zh) | 一种异步任务调度方法以及装置 | |
CN108415925B (zh) | 电子装置、数据调用日志生成及查询方法及存储介质 | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
CN110287007A (zh) | 数据调用响应方法、服务器及计算机可读存储介质 | |
CN109885382A (zh) | 跨系统分布式事务处理方法和分布式事务处理的系统 | |
CN115617511A (zh) | 资源数据处理的方法、装置、电子设备和存储介质 | |
CN107908481A (zh) | 一种数据同步方法、装置和系统 | |
CN109828830B (zh) | 用于管理容器的方法和装置 | |
CN109561134B (zh) | 电子装置、分布式集群服务分配方法及存储介质 | |
CN112865993A (zh) | 分布式主从系统中从节点的切换方法和装置 | |
CN111143063B (zh) | 任务的资源预约方法及装置 | |
CN112905338A (zh) | 计算资源自动分配方法及装置 | |
CN115629951B (zh) | 一种任务全链路追踪方法、第一节点、链路系统及介质 | |
CN111359205A (zh) | 云端游戏的操作方法、装置、计算机设备及存储介质 | |
CN114302351B (zh) | 短信业务处理方法、装置、计算机设备和存储介质 | |
CN115221041A (zh) | 多设备的测试方法、装置、电子设备及存储介质 | |
CN113504981A (zh) | 任务调度方法和装置、存储介质及电子设备 | |
CN109460291A (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 |