CN111090519A - 任务执行方法、装置、存储介质及电子设备 - Google Patents
任务执行方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111090519A CN111090519A CN201911236905.8A CN201911236905A CN111090519A CN 111090519 A CN111090519 A CN 111090519A CN 201911236905 A CN201911236905 A CN 201911236905A CN 111090519 A CN111090519 A CN 111090519A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- executed
- tasks
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004590 computer program Methods 0.000 claims description 14
- 230000001960 triggered effect Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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
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)
Abstract
本公开涉及一种任务执行方法、装置、存储介质及电子设备,以简化分布式集群中的任务执行过程,提高任务执行效率。该方法应用于分布式集群中的任务节点,包括:在所述任务节点本地存储的任务中,确定待执行的目标任务;获取所述分布式集群待执行的任务与对应的任务执行节点间的对应关系;根据获取到的所述对应关系,确定所述目标任务的任务执行节点是否为所述任务节点;若所述目标任务的任务执行节点为所述任务节点,则执行所述目标任务。
Description
技术领域
本公开涉及计算机技术领域,具体地,涉及一种任务执行方法、装置、存储介质及电子设备。
背景技术
随着应用系统需要处理的数据量越来越大,并且任务执行的可靠性要求越来越高,应用系统的任务执行过程逐渐由单节点的任务执行转换为集群环境下的多节点共同执行,从而提高应用系统的可用性和扩展性。
相关技术中,针对集群环境下的多节点任务执行,主要是通过单独的任务协调组件从任务存储组件中取出相应的任务加载到相应的执行节点而实现的。由于各组件之间的协同耦合,以及任务协调组件本身的复杂性,导致了集群环境下的任务执行非常复杂。一旦任务协调组件出现故障,或者任务协调组件与任务执行节点间的通信出现故障,则无法实现任务的执行。
发明内容
本公开的目的是提供一种任务执行方法、装置、存储介质及电子设备,简化分布式集群中的任务执行过程,提高任务执行效率。
为了实现上述目的,第一方面,本公开提供一种任务执行方法,应用于分布式集群中的任务节点,所述方法包括:
在所述任务节点本地存储的任务中,确定待执行的目标任务;
获取所述分布式集群待执行的任务与对应的任务执行节点间的对应关系;
根据获取到的所述对应关系,确定所述目标任务的任务执行节点是否为所述任务节点;
若所述目标任务的任务执行节点为所述任务节点,则执行所述目标任务。
可选地,所述方法还包括:
接收负载均衡器发送的所述任务节点待执行任务的任务信息,所述负载均衡器用于根据所述用户触发的任务以及所述分布式集群中的所有任务节点,确定待执行所述任务的任务节点、以及将所述任务的任务信息发送给对应的任务节点;
根据接收到的所述任务信息,生成对应的任务进行存储。
可选地,所述方法还包括:
获取所述分布式集群对应的任务列表,所述任务列表包括所述分布式集群中待执行的所有任务分别对应的任务信息;
确定存在于所述任务列表但不存在于所述对应关系中的未分配任务;
从所述任务列表中获取所述未分配任务的任务信息;
根据所述未分配任务的任务信息,生成对应的任务进行存储。
可选地,所述从所述任务列表中获取所述未分配任务的任务信息,包括:
根据所述对应关系中存在的任务节点,确定所述分布式集群中可执行任务的任务节点;
根据所述分布式集群中所述可执行任务的任务节点的节点数量与所述未分配任务的任务数量,确定所述任务节点待获取的所述未分配任务的目标任务数量;
在所述待分配任务中,确定所述目标任务数量对应的目标未分配任务;
从所述任务列表中获取所述目标未分配任务的任务信息。
可选地,所述获取所分布式集群待执行的各任务与对应的任务执行节点间的对应关系,包括:
从缓存或数据库中获取所述分布式集群待执行的各任务与对应的任务执行节点间的对应关系,其中,所述缓存或所述数据库用于存储所述分布式集群中各任务节点分别发送的节点标识与所述任务节点待执行任务的任务标识之间的对应关系、以及将接收到的所述对应关系进行存储。
可选地,所述方法还包括:
若所述目标任务的任务执行节点不是所述任务节点,则对所述目标任务添加任务锁;
在所述任务节点本地存储的任务中删除所述目标任务。
第二方面,本公开还提供一种任务执行装置,应用于分布式集群中的任务节点,所述装置包括:
第一确定模块,用于在所述任务节点本地存储的任务中,确定待执行的目标任务;
获取模块,用于获取所述分布式集群待执行的任务与对应的任务执行节点间的对应关系;
第二确定模块,用于根据获取到的所述对应关系,确定所述目标任务的任务执行节点是否为所述任务节点;
执行模块,用于当所述目标任务的任务执行节点为所述任务节点时,执行所述目标任务。
可选地,所述装置还包括:
接收模块,用于接收负载均衡器发送的所述任务节点待执行任务的任务信息,所述负载均衡器用于根据用户输入的所述分布式集群待执行的所有任务以及所述分布式集群中的所有任务节点,确定每个任务节点待执行任务的任务信息;
存储模块,用于根据接收到的所述任务信息,生成对应的任务进行存储。
第三方面,本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述方法的步骤。
第四方面,本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所述方法的步骤。
通过上述技术方案,任务节点可以将待执行的任务进行本地存储,在执行任务时,任务节点可以直接从本地加载任务进行执行,而不需要任务协调组件和任务存储组件的参与,降低了任务执行的复杂性,可以提高任务执行的效率。另外,任务节点可以检测该任务是否为该任务节点可执行的任务,若是,则执行该任务,从而保证分布式集群中的任务节点仅能执行自身可执行的任务,避免任务的重复执行。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是相关技术中任务执行过程中所需的组件示意图;
图2是相关技术中任务执行过程的示意图;
图3是根据本公开一示例性实施例示出的一种任务执行方法的流程图;
图4是根据本公开一示例性实施例示出的一种任务执行方法中任务节点与本地存储的任务的示意图;
图5是根据本公开另一示例性实施例示出的一种任务执行方法的流程图;
图6是根据本公开一示例性实施例示出的一种任务执行装置的框图;
图7是根据本公开一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
随着应用系统需要处理的数据量越来越大,并且任务执行的可靠性要求越来越高,应用系统的任务执行过程逐渐由单节点的任务执行转换为集群环境下的多节点共同执行,从而提高应用系统的可用性和扩展性。参照图1,针对集群环境下的多节点任务执行,相关技术主要是通过任务分配组件、任务存储组件、任务协调组件和任务执行组件而实现的。其中,任务分配组件主要用于任务的分发,任务存储组件主要用于任务信息的存储,任务协调组件主要用于任务的调度、以及任务的重新分配,任务执行组件主要用于任务的执行。
参照图2,按照相关技术的方案,在任务执行过程中,各任务节点需要将自身节点标识发送给任务协调组件进行注册,然后任务协调组件可以确定每个任务节点待执行的任务,并从任务存储组件中取出相应的任务加载到相应的任务节点,从而由任务节点执行相应的任务。通过这样的方式,由于各组件之间的协同耦合,以及任务协调组件本身的复杂性,导致了集群环境下的任务执行非常复杂。一旦任务协调组件出现故障,或者任务协调组件与任务执行节点间的通信出现故障,则无法实现任务的执行。
有鉴于此,本公开实施例提供一种任务执行方法、装置、存储介质及电子设备,以简化分布式集群中的任务执行过程,提高任务执行的效率。
图3是根据本公开一示例性实施例示出的一种任务执行方法的流程图。参照图3,该任务执行方法可以应用于分布式集群中的任务节点,该方法包括:
步骤301,在任务节点本地存储的任务中,确定待执行的目标任务。
步骤302,获取分布式集群待执行的任务与对应的任务执行节点间的对应关系。
步骤303,根据获取到的该对应关系,确定目标任务的任务执行节点是否为该任务节点。
步骤304,若目标任务的任务执行节点为该任务节点,则执行目标任务。
通过上述技术方案,任务节点可以将待执行的任务进行本地存储,在执行任务时,任务节点可以直接从本地加载任务进行执行,而不需要任务协调组件和任务存储组件的参与,降低了任务执行的复杂性,可以提高任务执行的效率。另外,任务节点可以检测该任务是否为该任务节点可执行的任务,若是,则执行该任务,从而可以保证分布式集群中的各任务节点仅能执行自身可执行的任务,避免任务的重复执行。
为了使得本领域的技术人员更加理解本公开中的任务执行方法,下面对上述各步骤进行详细举例说明。
在可能的方式中,在步骤301之前,任务节点可以接收负载均衡器发送的任务节点待执行任务的任务信息,该负载均衡器用于根据用户触发的任务以及分布式集群中的所有任务节点,确定待执行所述任务的任务节点、以及将所述任务的任务信息发送给对应的任务节点。相应地,任务节点可以根据接收到的该任务信息,生成对应的任务进行存储。
也即是说,本公开实施例中初始的任务分配可以基于用户在前端触发的任务而进行。在具体实施时,可以设定负载均衡器用于接收用户触发的任务。然后,负载均衡器可以根据用户触发的任务以及分布式集群中的所有任务节点,对用户触发的任务进行分配,以确定待执行该任务的任务节点,然后可以将待执行任务的任务信息发送给对应的任务节点。相应的,任务节点可以根据接收到的任务信息,生成对应的任务进行存储,从而在后续任务执行过程中,任务节点可以在本地存储的任务中,确定待执行的目标任务。
示例地,对于确定待执行的目标任务的方式,由于分布式集群中待执行的任务大多为定时任务,即需要到特定时间执行的任务,比如,数据库采集组件需要定时执行的数据采集和同步任务,或者页面数据抓取组件在进行数据爬取时,需要定时维护的与目标系统的会话控制(session)保持任务,等等。因此,可以在任务节点中设置触发器,在到达定时时间的情况下,通过该触发器触发对应任务的执行,从而根据任务节点中触发器的触发情况,确定待执行的目标任务。
在确定待执行的目标任务之后,可以获取分布式集群中待执行的任务与对应的任务执行节点间的对应关系。示例地,针对分布式集群中的每一个任务节点,该任务节点可以将该任务节点的节点标识与该任务节点待执行任务的任务标识间的对应关系发送给缓存或数据库,从而缓存或数据库可以接收并存储每一任务节点的节点标识与任务标识间的对应关系。例如,可以在每个任务节点中设定守护任务,该守护任务可以实时或者周期性先缓存或数据库发送任务节点的节点标识与该任务节点待执行任务的任务标识间的对应关系,等等,本公开实施例对于任务节点向缓存或数据库发送对应关系的方式不作限定。
相应地,在可能的方式中,任务节点可以从缓存或数据库中获取分布式集群待执行的任务与对应的任务执行节点间的对应关系。其中,缓存或数据库用于接收分布式集群中各任务节点分别发送的节点标识与任务节点待执行任务的任务标识之间的对应关系、以及将接收到的对应关系进行存储。
示例地,缓存或数据库可以将接收到的各任务节点分别发送的节点标识与待执行任务的任务标识之间的对应关系存储到一个数据表中,或者也可以将每个任务节点的节点标识以及待执行任务的任务标识之间的对应关系分别存储为不同的多个数据表,且每个数据表分别对应一个任务节点,等等,本公开实施例对此不作限定。应当理解的是,对于存储到一个数据表中的方式,任务节点获取到的对应关系是分布式集群待执行的各任务与对应的任务执行节点间的对应关系,而对于存储到多个数据表的方式,任务节点获取到的对应关系可以是分布式集群中该任务节点待执行任务的任务标识与该任务节点的节点标识间的对应关系。
在获取到分布式集群中待执行的任务与对应的任务执行节点之间的对应关系后,可以根据该对应关系,确定目标任务的任务执行节点是否为该任务节点。若目标任务的任务执行节点为该任务节点,则执行目标任务,否则不执行目标任务,从而避免任务的重复执行。
示例地,由于本公开实施例中的对应关系表示的是分布式集群中待执行的任务与对应的任务执行节点之间的对应关系,因此可以根据目标任务的任务标识在该对应关系中进行查找,确定目标任务的执行节点的节点标识。如果该节点标识与该任务节点的节点标识一致,则可以确定目标任务的任务执行节点为该任务节点,从而执行该目标任务。反之,如果该节点标识与该任务节点的节点标识不一致,则可以确定目标任务的任务执行节点不是该任务节点,从而不执行该目标任务。
在可能的方式中,若目标任务的任务执行节点不是该任务节点,还可以对目标任务添加任务锁。然后可以在该任务节点本地存储的任务中删除目标任务。其中,通过添加任务锁的方式,可以保证在删除目标任务的过程中,只有该任务节点对目标任务进行操作,从而保证删除操作的正常进行。另外,删除任务节点无法执行的任务,可以减少任务节点的存储冗余,进而提高任务节点的任务执行能力。
相关技术中,如果当分布式集群中的任务节点出现故障而无法继续执行任务时,为了避免任务的丢失,则需要将分布式集群中待执行的所有任务进行重新分配。按照此种方式,需要重新分配的任务数量可能较多,需要一定的时间进行重新分配,进而可能影响任务的执行效率。
为了解决上述问题,可以获取分布式集群对应的任务列表,该任务列表可以包括分布式集群中待执行的所有任务分别对应的任务信息。然后确定存在于任务列表但不存在于对应关系中的未分配任务。最后从任务列表中获取该未分配任务的任务信息,并根据该未分配任务的任务信息,生成对应的任务进行存储。
示例地,在每个任务节点根据接收到的任务信息,生成对应的待执行任务进行存储之后,可以分别将待执行任务的任务信息,比如任务标识等信息,发送给缓存或数据库。相应地,缓存或数据库可以根据接收到的各任务节点的任务信息形成任务列表进行存储。在对故障节点的任务进行重新分配的过程中,可以首先获取该任务列表,从而根据该任务列表确定故障节点未执行的任务。
示例地,缓存或数据库中存储的节点与任务的对应关系可以具有过期时间,每个任务节点需要在过期时间到达之前重新向缓存或数据库发送对应关系。如果任务节点出现故障则无法向缓存或数据库发送对应关系,那么缓存或数据库中该故障节点对应的任务与节点间的对应关系则会被删除。
也即是说,如果任务节点出现故障,那么对应关系中则不存在该任务节点的任务标识。因此,可以将对应关系中的任务标识与任务列表中的任务标识进行比对。如果任务存在于任务列表但不存在于对应关系中,则可以确定该任务是故障任务节点未执行的任务,从而为了避免任务的丢失,需要对该任务进行重新分配。
具体的,由于任务列表中存储有分布式集群中所有任务分别对应的任务信息,因此在确定故障节点未执行的任务(即未分配任务)之后,可以从任务列表中获取该故障节点未执行任务的任务信息,以实现该未执行任务的重新分配。应当理解的是,为了避免同一时间多个任务节点同时获取同一个未分配任务的任务信息,可以先对未分配任务的任务信息添加任务锁后再进行获取,具体的实施方式与相关技术中类似,这里不再赘述。
另外应当理解的是,在获取到未分配任务的任务信息后,任务节点可以根据该任务信息,生成对应的任务进行本地存储,并且任务节点可以立即向缓存或数据库发送新的节点与任务的对应关系,以更新原有的对应关系。或者,如果任务节点是周期性向缓存或数据库发送对应关系,那么任务节点可以在下一次发送周期到达时,再向缓存或数据库发送对应关系,以更新原有的对应关系,等等,本公开实施例对此不作限定。
通过上述方式,可以对分布式集群中故障节点未执行的任务进行重新分配,相较于相关技术中当分布式集群中出现故障节点则将分布式集群待执行的所有任务进行重新分配的方式,本公开的方式可以减少重新分配的任务数量,从而提高任务分配效率,进而提高任务执行效率。
在可能的方式中,为了避免将故障节点未执行的任务分配给同一个任务节点而导致各任务节点负载不均的问题,还可以根据故障节点未执行任务的数量以及分布式集群中可执行任务的正常任务节点的数量,确定分配给正常任务节点的任务数量。
也即是说,在本公开实施例中,还可以先根据对应关系中存在的任务节点,确定分布式集群中可执行任务的任务节点,再根据分布式集群中可执行任务的任务节点的节点数量与未分配任务的任务数量,确定任务节点待获取的未分配任务的目标任务数量。然后,在待分配任务中,确定目标任务数量对应的目标未分配任务。最后,从任务列表中获取目标未分配任务的任务信息。
示例地,正如上文所述,缓存或数据库中存储的节点与任务的对应关系可以具有过期时间,每个任务节点需要在过期时间到达之前重新向缓存或数据库发送对应关系。如果任务节点出现故障则而无法向缓存或数据库发送对应关系,那么缓存或数据库中该故障节点对应的任务与节点间的对应关系则会被删除掉。因此,可以确定的是,对应关系中存在的节点标识所对应的任务节点均是可执行任务的正常节点,从而可以根据对应关系中存在的任务节点,确定分布式集群中可执行任务的任务节点。
在确定可执行任务的任务节点之后,可以根据该任务节点的数量以及未分配任务的任务数量,确定该任务节点待获取的未分配任务的目标任务数量。示例地,可以根据该任务节点的数量以及未分配任务的任务数量进行除法计算,以将未分配任务平均分配给每个可执行任务的任务节点。
应当理解的是,如果除法计算结果不是整数,则可以四舍五入确定任务节点带获取的未分配任务的目标任务数量。另外,如果分配到最后,剩余的未分配任务数量小于目标任务数量,则可以直接将剩余的未分配任务分配给分布式集群中任何一个还没有分配有未分配任务的任务节点。或者,如果初始只有一个未分配任务,那么也可以确定分布式集群中任何一个任务节点执行未分配任务。
例如,参照图4,分布式集群包括任务节点A、任务节点B和任务节点C。其中,任务节点A待执行任务包括任务1和任务2,任务节点B待执行任务包括任务3、任务4和任务5,任务节点C待执行任务包括任务6和任务7。在此种情况下,任务节点C出现故障,其待执行的3个任务(任务3、任务4和任务5)需要重新分配。具体的,由于未分配任务数量为3,分布式集群中可执行任务的任务节点分别为任务节点A和任务节点B,即分布式集群中可执行任务的任务节点的节点数量为2,因此可以进行3除以2的计算,并四舍五入确定任务节点待获取的未分配任务的目标任务数量为2。在此情况下,可以是任务节点A先获取任务3和任务4这两个未分配任务,然后任务节点B再获取剩余的未分配任务(任务5)。或者也可以是任务节点B先获取任务3和任务4这两个未分配任务,然后任务节点A再获取剩余的未分配任务(任务5)。本公开实施例对任务节点获取未分配任务的先后顺序不作限定。
通过上述方式,可以将故障节点未执行的任务进行平均再分配,避免将故障节点未执行的任务分配给同一个任务节点而导致各任务节点负载不均的问题,从而提高任务执行的效率。
下面通过另一示例性实施例对本公开中的任务执行方法进行说明。参照图5,该任务执行方法包括:
步骤501,接收负载均衡器发送的任务节点待执行任务的任务信息。
步骤502,根据接收到的任务信息,生成对应的任务进行存储。
步骤503,将任务节点的节点与任务之间的对应关系以及各任务的任务信息发送给缓存或数据库。应当理解的是,如果分布式集群中没有故障节点,那么执行步骤503后,可以执行步骤512,否则可以执行步骤504。
步骤504,从缓存或数据库中获取分布式集群待执行的各任务与对应的任务执行节点间的对应关系。
步骤505,获取分布式集群对应的任务列表。
步骤506,确定存在于任务列表但不存在于对应关系中的未分配任务。
步骤507,根据对应关系中存在的任务节点,确定分布式集群中可执行任务的任务节点。
步骤508,根据分布式集群中可执行任务的任务节点的节点数量与未分配任务的任务数量,确定任务节点待获取的未分配任务的目标任务数量。
步骤509,在待分配任务中,确定目标任务数量对应的目标未分配任务。
步骤510,从任务列表中获取目标未分配任务的任务信息。
步骤511,根据未分配任务的任务信息,生成对应的任务进行存储。
步骤512,在任务节点本地存储的任务中,确定待执行的目标任务。
步骤513,从缓存或数据库获取分布式集群待执行的任务与对应的任务执行节点间的对应关系。
步骤514,根据获取到的对应关系,确定目标任务的任务执行节点是否为该任务节点,若是,则执行步骤515,否则执行步骤516和步骤517。
步骤515,执行目标任务。
步骤516,对目标任务添加任务锁。
步骤517,在任务节点本地存储的任务中删除目标任务。
上述各步骤的具体实施方式已在上文进行详细举例说明,这里不再赘述。另外应当理解的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受上文所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,上文所描述的实施例属于优选实施例,所涉及的步骤并不一定是本公开所必须的。
通过上述方式,任务节点可以将待执行的任务进行本地存储,在执行任务时,任务节点可以直接从本地加载任务进行执行,而不需要任务协调组件和任务存储组件的参与,降低了任务执行的复杂性,可以保证任务的正常执行,并提高任务执行的效率。另外,在任务执行之前,任务节点可以检测该任务是否为自身执行的任务,若是,则执行该任务,从而可以保证分布式集群中的任务节点仅能执行自身可执行的任务,避免任务的重复执行。
基于同一发明构思,本公开实施例还提供一种任务执行装置,应用于分布式集群中的任务节点,可以通过软件、硬件或两者结合的方式成为电子设备的部分或全部。参照图6,该任务执行装置600包括:
第一确定模块601,用于在所述任务节点本地存储的任务中,确定待执行的目标任务;
获取模块602,用于获取所述分布式集群待执行的任务与对应的任务执行节点间的对应关系;
第二确定模块603,用于根据获取到的所述对应关系,确定所述目标任务的任务执行节点是否为所述任务节点;
执行模块604,用于当所述目标任务的任务执行节点为所述任务节点时,执行所述目标任务。
可选地,所述装置600还包括:
接收模块,用于接收负载均衡器发送的所述任务节点待执行任务的任务信息,所述负载均衡器用于根据用户触发的任务以及所述分布式集群中的所有任务节点,确定待执行所述任务的任务节点、以及将所述任务的任务信息;发送给对应的任务节点;
存储模块,用于根据接收到的所述任务信息,生成对应的任务进行存储。
可选地,所述装置600还包括:
第一获取模块,用于获取所述分布式集群对应的任务列表,所述任务列表包括所述分布式集群中待执行的所有任务分别对应的任务信息;
任务确定模块,用于确定存在于所述任务列表但不存在于所述对应关系中的未分配任务;
第二获取模块,用于从所述任务列表中获取所述未分配任务的任务信息;
任务存储模块,用于根据所述未分配任务的任务信息,生成对应的任务进行存储。
可选地,所述第二获取模块,用于:
根据所述对应关系中存在的任务节点,确定所述分布式集群中可执行任务的任务节点;
根据所述分布式集群中所述可执行任务的任务节点的节点数量与所述未分配任务的任务数量,确定所述任务节点待获取的所述未分配任务的目标任务数量;
在所述待分配任务中,确定所述目标任务数量对应的目标未分配任务;
从所述任务列表中获取所述目标未分配任务的任务信息。
可选地,所述获取模块用于:
从缓存或数据库中获取所述分布式集群待执行的各任务与对应的任务执行节点间的对应关系,其中,所述缓存或所述数据库用于存储所述分布式集群中各任务节点分别发送的节点标识与所述任务节点待执行任务的任务标识之间的对应关系、以及将接收到的所述对应关系进行存储。
可选地,所述装置600还包括:
添加模块,用于当所述目标任务的任务执行节点不是所述任务节点时,对所述目标任务添加任务锁;
删除模块,用于在任务节点本地存储的任务中删除所述目标任务。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一发明构思,本公开实施例还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述任一任务执行方法的步骤。
在可能的方式中,该电子设备的框图可以如图7所示。参照图7,该电子设备可以被提供为一服务器,包括处理器722,其数量可以为一个或多个,以及存储器732,用于存储可由处理器722执行的计算机程序。存储器732中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器722可以被配置为执行该计算机程序,以执行上述的任务执行方法。
另外,电子设备700还可以包括电源组件726和通信组件750,该电源组件726可以被配置为执行电子设备700的电源管理,该通信组件750可以被配置为实现电子设备700的通信,例如,有线或无线通信。此外,该电子设备700还可以包括输入/输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的任务执行方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器732,上述程序指令可由电子设备700的处理器722执行以完成上述的任务执行方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的任务执行方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种任务执行方法,其特征在于,应用于分布式集群中的任务节点,所述方法包括:
在所述任务节点本地存储的任务中,确定待执行的目标任务;
获取所述分布式集群待执行的任务与对应的任务执行节点间的对应关系;
根据获取到的所述对应关系,确定所述目标任务的任务执行节点是否为所述任务节点;
若所述目标任务的任务执行节点为所述任务节点,则执行所述目标任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收负载均衡器发送的所述任务节点待执行任务的任务信息,所述负载均衡器用于根据用户触发的任务以及所述分布式集群中的所有任务节点,确定待执行所述任务的任务节点、以及将所述任务的任务信息发送给对应的任务节点;
根据接收到的所述任务信息,生成对应的任务进行存储。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述分布式集群对应的任务列表,所述任务列表包括所述分布式集群中待执行的所有任务分别对应的任务信息;
确定存在于所述任务列表但不存在于所述对应关系中的未分配任务;
从所述任务列表中获取所述未分配任务的任务信息;
根据所述未分配任务的任务信息,生成对应的任务进行存储。
4.根据权利要求3所述的方法,其特征在于,所述从所述任务列表中获取所述未分配任务的任务信息,包括:
根据所述对应关系中存在的任务节点,确定所述分布式集群中可执行任务的任务节点;
根据所述分布式集群中所述可执行任务的任务节点的节点数量与所述未分配任务的任务数量,确定所述任务节点待获取的所述未分配任务的目标任务数量;
在所述待分配任务中,确定所述目标任务数量对应的目标未分配任务;
从所述任务列表中获取所述目标未分配任务的任务信息。
5.根据权利要求1-4任一所述的方法,其特征在于,所述获取所分布式集群待执行的各任务与对应的任务执行节点间的对应关系,包括:
从缓存或数据库中获取所述分布式集群待执行的任务与对应的任务执行节点间的对应关系,其中,所述缓存或所述数据库用于接收所述分布式集群中各任务节点分别发送的节点标识与所述任务节点待执行任务的任务标识之间的对应关系、以及将接收到的所述对应关系进行存储。
6.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:
若所述目标任务的任务执行节点不是所述任务节点,则对所述目标任务添加任务锁;
在所述任务节点本地存储的任务中删除所述目标任务。
7.一种任务执行装置,其特征在于,应用于分布式集群中的任务节点,所述装置包括:
第一确定模块,用于在所述任务节点本地存储的任务中,确定待执行的目标任务;
获取模块,用于获取所述分布式集群待执行的任务与对应的任务执行节点间的对应关系;
第二确定模块,用于根据获取到的所述对应关系,确定所述目标任务的任务执行节点是否为所述任务节点;
执行模块,用于当所述目标任务的任务执行节点为所述任务节点时,执行所述目标任务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收负载均衡器发送的所述任务节点待执行任务的任务信息,所述负载均衡器用于根据用户触发的任务以及所述分布式集群中的所有任务节点,确定待执行所述任务的任务节点、以及将所述任务发送给对应的任务节点;
存储模块,用于根据接收到的所述任务信息,生成对应的任务进行存储。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911236905.8A CN111090519B (zh) | 2019-12-05 | 2019-12-05 | 任务执行方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911236905.8A CN111090519B (zh) | 2019-12-05 | 2019-12-05 | 任务执行方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090519A true CN111090519A (zh) | 2020-05-01 |
CN111090519B CN111090519B (zh) | 2024-04-09 |
Family
ID=70394704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911236905.8A Active CN111090519B (zh) | 2019-12-05 | 2019-12-05 | 任务执行方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090519B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148445A (zh) * | 2020-09-09 | 2020-12-29 | 倍智智能数据运营有限公司 | 一种基于大数据技术的分布式任务调度方法 |
CN112965796A (zh) * | 2021-03-01 | 2021-06-15 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN114726628A (zh) * | 2022-04-11 | 2022-07-08 | 广东电网有限责任公司佛山供电局 | 无人机巡检系统及其加密方法和无人机、地面终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074168A1 (en) * | 2013-06-19 | 2015-03-12 | Hitachi Data Systems Engineering UK Limited | Decentralized distributed computing system |
CN106790389A (zh) * | 2016-11-25 | 2017-05-31 | 中国石油天然气集团公司 | 地震道数据的获取方法、主节点服务器及工作节点服务器 |
US20180232257A1 (en) * | 2015-08-05 | 2018-08-16 | Hangzhou Hikvision Digital Technology Co., Ltd. | Task allocation method and task allocation apparatus for distributed data calculation |
US20190042303A1 (en) * | 2015-09-24 | 2019-02-07 | Wangsu Science & Technology Co.,Ltd. | Distributed storage-based file delivery system and method |
-
2019
- 2019-12-05 CN CN201911236905.8A patent/CN111090519B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074168A1 (en) * | 2013-06-19 | 2015-03-12 | Hitachi Data Systems Engineering UK Limited | Decentralized distributed computing system |
US20180232257A1 (en) * | 2015-08-05 | 2018-08-16 | Hangzhou Hikvision Digital Technology Co., Ltd. | Task allocation method and task allocation apparatus for distributed data calculation |
US20190042303A1 (en) * | 2015-09-24 | 2019-02-07 | Wangsu Science & Technology Co.,Ltd. | Distributed storage-based file delivery system and method |
CN106790389A (zh) * | 2016-11-25 | 2017-05-31 | 中国石油天然气集团公司 | 地震道数据的获取方法、主节点服务器及工作节点服务器 |
Non-Patent Citations (1)
Title |
---|
徐爱萍 等: "在线多任务异构云服务器负载均衡算法研究", 计算机科学, vol. 43, no. 6, 30 June 2016 (2016-06-30), pages 50 - 54 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148445A (zh) * | 2020-09-09 | 2020-12-29 | 倍智智能数据运营有限公司 | 一种基于大数据技术的分布式任务调度方法 |
CN112965796A (zh) * | 2021-03-01 | 2021-06-15 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN112965796B (zh) * | 2021-03-01 | 2024-04-09 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN114726628A (zh) * | 2022-04-11 | 2022-07-08 | 广东电网有限责任公司佛山供电局 | 无人机巡检系统及其加密方法和无人机、地面终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111090519B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090519B (zh) | 任务执行方法、装置、存储介质及电子设备 | |
CN111091429A (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
CN110995513B (zh) | 物联网系统中的数据发送、接收方法、物联网设备及平台 | |
CN107861811B (zh) | 工作流系统中的任务信息传输方法、装置和计算机设备 | |
CN105744001A (zh) | 分布式缓存系统扩容方法、数据访问方法及装置和系统 | |
CN113835844A (zh) | 一种容器集群的管理方法、装置及云计算平台 | |
CN109257396B (zh) | 一种分布式锁调度方法及装置 | |
CN111179008B (zh) | 一种信息状态的更新方法、装置、系统及存储介质 | |
CN111459676A (zh) | 一种节点资源管理方法、装置及存储介质 | |
CN109032779B (zh) | 任务处理方法、装置、计算机设备及可读存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112261125B (zh) | 集中单元的云化部署方法、装置及系统 | |
CN110928679B (zh) | 一种资源分配方法及装置 | |
CN109005071B (zh) | 一种决策部署方法和调度设备 | |
CN112035579B (zh) | 图管理、数据存储、数据查询方法、装置及存储介质 | |
US11381642B2 (en) | Distributed storage system suitable for sensor data | |
CN111294220B (zh) | 基于nginx的网络隔离配置方法和装置 | |
CN109039781B (zh) | 一种网络设备故障诊断方法、执行节点、服务器和系统 | |
CN106936643B (zh) | 一种设备联动方法以及终端设备 | |
CN108154343B (zh) | 一种企业级信息系统的应急处理方法及系统 | |
CN110362575B (zh) | 一种生成数据的全局索引的方法及装置 | |
CN110209475B (zh) | 数据采集方法及装置 | |
CN114489956A (zh) | 一种基于云平台的实例启动方法及装置 | |
CN109818767B (zh) | 一种Redis集群容量调整的方法、装置及存储介质 | |
CN113094397A (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 |