CN115576700A - 分布式任务执行方法、服务节点及服务器 - Google Patents
分布式任务执行方法、服务节点及服务器 Download PDFInfo
- Publication number
- CN115576700A CN115576700A CN202211561559.2A CN202211561559A CN115576700A CN 115576700 A CN115576700 A CN 115576700A CN 202211561559 A CN202211561559 A CN 202211561559A CN 115576700 A CN115576700 A CN 115576700A
- Authority
- CN
- China
- Prior art keywords
- task
- server
- tasks
- execution
- indication
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004590 computer program Methods 0.000 claims description 15
- 230000001360 synchronised effect Effects 0.000 abstract description 10
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000004888 barrier function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction 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/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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Abstract
本发明提供一种分布式任务执行方法、服务节点及服务器,应用于计算机科学技术领域,该方法包括:服务器获取配置文件,配置文件包括多个任务及执行顺序;在根据执行顺序确定执行完多个任务中第一任务的情况下,向服务器集群对应的目标服务节点发送第一指示,第一指示用于指示服务器已执行完第一任务;目标服务节点在基于服务器集群中所有服务器发送的第一指示确定所有服务器均已执行完第一任务的情况下,向所有服务器发送第二指示;服务器基于第二指示,执行多个任务中的第二任务,第一任务和第二任务为执行顺序相邻的两个任务。这样一来,服务器集群中每个服务器都可与目标服务节点进行信息交互,以有效保证分布式情况下任务状态的同步执行。
Description
技术领域
本发明涉及计算机科学技术领域,尤其涉及一种分布式任务执行方法、服务节点及服务器。
背景技术
现有的分布式任务执行方法中,第一服务器和第二服务器在获取多个任务及该多个任务的执行顺序之后,该第一服务器基于该执行顺序依次执行每个任务,该第二服务器也基于该执行顺序依次执行该每个任务。这样一来,由于每个服务器都是独立执行上述多个任务的,所以,就无法保证分布式情况下任务状态的同步执行,也就是说,无法保证每个服务器在执行完第一个相同任务之后,同时执行下一个相同任务。
发明内容
本发明提供一种分布式任务执行方法、服务节点及服务器,用以解决现有的分布式任务执行方法中,由于每个服务器都是独立执行多个任务的,所以,就无法保证分布式情况下任务状态同步执行的缺陷,实现服务器集群中每个服务器都可与目标服务平台进行信息交互,从而有效保证该每个服务器在执行完第一任务之后,能够同时执行第二任务,即有效保证分布式情况下任务状态的同步执行。
本发明在第一方面提供一种分布式任务执行方法,应用于目标服务节点,该方法包括:
接收服务器发送的第一指示,该服务器为该目标服务节点对应的服务器集群中的任一服务器,该第一指示用于指示该服务器已执行完多个任务中第一任务;
在基于该服务器集群中所有服务器发送的第一指示,确定该所有服务器均已执行完该第一任务的情况下,向该所有服务器发送第二指示,该第二指示用于控制执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
根据本发明提供的一种分布式任务执行方法,该向该所有服务器发送第二指示,包括:基于该第一指示和预设的多个任务对应的执行顺序,从该多个任务中确定该第二任务;生成该第二任务对应的第二指示,并向该所有服务器发送该第二指示。
本发明在第二方面提供一种分布式任务执行方法,应用于服务器集群中的任一服务器,该方法包括:
获取配置文件,该配置文件包括多个任务及该多个任务对应的执行顺序;
在根据该执行顺序确定执行完该多个任务中第一任务的情况下,向该服务器集群对应的目标服务节点发送第一指示,该第一指示用于指示服务器已执行完该第一任务;
接收该目标服务节点发送的第二指示;
基于该第二指示,执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
根据本发明提供的一种分布式任务执行方法,该配置文件还包括该多个任务中首个任务对应的执行时间点,该方法还包括:在到达该执行时间点的情况下,执行该首个任务。
根据本发明提供的一种分布式任务执行方法,该在根据该执行顺序确定执行完该多个任务中第一任务的情况下,向该服务器集群对应的目标服务节点发送第一指示,包括:在确定执行完该第一任务的情况下,确定该第一任务对应的执行结果;在该执行结果指示该第一任务被正常执行完毕的情况下,向该目标服务节点发送该第一指示。
根据本发明提供的一种分布式任务执行方法,该执行该多个任务中的第二任务,包括:调用该服务器对应服务平台的执行指令;基于该执行指令,执行该多个任务中的第二任务。
本发明还提供一种服务节点,包括:
收发模块,用于接收服务器发送的第一指示,该服务器为该目标服务节点对应的服务器集群中的任一服务器,该第一指示用于指示该服务器已执行完多个任务中第一任务;在处理模块基于该服务器集群中所有服务器发送的第一指示,确定该所有服务器均已执行完该第一任务的情况下,向该所有服务器发送第二指示,该第二指示用于控制执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
本发明还提供一种服务器,包括:
获取模块,用于获取配置文件,该配置文件包括多个任务及该多个任务对应的执行顺序;
收发模块,用于在处理模块根据该执行顺序确定执行完该多个任务中第一任务的情况下,向该服务器集群对应的目标服务节点发送第一指示,该第一指示用于指示服务器已执行完该第一任务;接收该目标服务节点发送的第二指示;
该处理模块,用于基于该第二指示,执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
本发明还提供一种服务节点,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面任一所述分布式任务执行方法。
本发明还提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第二方面任一所述分布式任务执行方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面或第二方面任一所述分布式任务执行方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面或第二方面任一所述分布式任务执行方法。
本发明提供的分布式任务执行方法、服务节点及服务器,通过服务器获取配置文件,所述配置文件包括多个任务及所述多个任务对应的执行顺序;在根据所述执行顺序确定执行完所述多个任务中第一任务的情况下,向所述服务器集群对应的目标服务节点发送第一指示,所述第一指示用于指示服务器已执行完所述第一任务;目标服务节点接收服务器发送的第一指示,所述服务器为所述目标服务节点对应的服务器集群中的任一服务器,所述第一指示用于指示所述服务器已执行完多个任务中第一任务;在基于所述服务器集群中所有服务器发送的第一指示,确定所述所有服务器均已执行完所述第一任务的情况下,向所述所有服务器发送第二指示;服务器接收所述目标服务节点发送的第二指示;基于所述第二指示,执行所述多个任务中的第二任务,所述第一任务和所述第二任务为所述执行顺序相邻的两个任务。该方法用以解决现有的分布式任务执行方法中,由于每个服务器都是独立执行多个任务的,所以,就无法保证分布式情况下任务状态同步执行的缺陷,实现服务器集群中每个服务器都可与目标服务平台进行信息交互,从而有效保证该每个服务器在执行完第一任务之后,能够同时执行第二任务,即有效保证分布式情况下任务状态的同步执行。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的分布式任务执行方法的流程示意图;
图2是本发明提供的分布式任务执行方法的场景示意图;
图3是本发明提供的服务节点的结构示意图之一;
图4是本发明提供的服务器的结构示意图之一;
图5是本发明提供的服务节点的结构示意图之二;
图6是本发明提供的服务器的结构示意图之二。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例涉及的服务器集群可以包括多个服务器。
其中,服务器指的是一个管理资源并为用户提供服务的计算机软件。
需要说明的是,本发明实施例涉及的目标服务节点可以是zookeeper服务节点。
其中,该zookeeper服务节点指的是一个为分布式应用提供一致性服务的装置。
上述目标服务节点与上述服务器集群对应,也就是说,上述zookeeper服务节点可与上述多个服务器对应,每个服务器引入同一个zookeeper服务节点。
可选的,服务器与目标服务节点之间可通过无线通信技术进行连接,该无线通信技术可以包括但不限于以下其中一项:第四代通讯技术(the 4 Generation mobilecommunication technology,4G)、第五代通讯技术(the 5 Generation mobilecommunication technology,5G)及无线保真技术(Wireless Fidelity,WiFi)等。
下面对本发明实施例进行进一步地说明。
如图1所示,是本发明提供的分布式任务执行方法的流程示意图,该方法可以包括:
101、服务器获取配置文件。
其中,服务器为目标服务节点对应的服务器集群中的任一服务器;
配置文件是根据服务器对应服务平台得到的,配置文件可以包括多个任务及多个任务的执行顺序。
上述任务指的是服务器需要处理的某些事件所对应的进程。
可选的,服务平台可以包括:第一类平台及第二类平台,该第二类平台与该第一类平台不同;
该第一类平台可以包括但不限于:Linux平台及Docker平台等;
该第二类平台可以包括但不限于:Python Spark平台及大数据计算服务MaxCompute平台等。
其中,Linux平台指的是一个基于可移植操作系统接口(Portable OperatingSystem Interface of UNIX,POSIX)和程序设计语言统一扩充的信息和计算机系统(Uniplexed Informationand Computer Systems,UNIX)的多用户、多任务、支持多线程和多中央处理器(Central Processing Unit,CPU)的操作平台;
Docker平台指的是一个基于Go语言的开源应用容器引擎,该Docker平台可使得用户将项目/任务打包成一个可移植的轻量级的容器,期望达到使项目/任务运行环境“一次封装,到处运行”的目的;
Python Spark平台指的是可以使用Hadoop分布式文件系统(Hadoop DistributedFile System,HDFS)分布式存储大量数据,还可以在集群(例如:Spark stand alone、Hadoop YARN及Mesos等)上执行分布式计算的平台;
Max Compute平台指的是一种统一的大数据计算平台,该Max Compute可向用户提供完善的数据导入方案以及多种经典的分布式计算模型(例如:结构化查询语言(Structured Query Language,SQL)、图计算、流计算和机器学习等),能够更快速地解决用户海量数据计算问题。
可选的,任务可以包括但不限于:下载目标文件、检测服务器对应的系统安全性及升级服务器对应的系统补丁等。
可选的,多个任务的执行顺序是用户自定义的。
可选的,多个任务的执行顺序可通过有向链表表示。
也就是说,不同的服务平台对应的配置文件是不同的,但是,各个不同的配置文件中都包括了相同的多个任务及这多个相同任务的执行顺序。
用户在确定服务器集群需要执行的多个任务之后,可以在分布式任务流编排系统中对这多个任务进行编号,得到这多个任务的执行顺序,并将这多个任务及执行顺序以代码的形式写入配置文件。由于不同服务器对应的服务平台是不同的,所以,用户需要基于不同服务平台可解析配置文件的方式将多个任务及执行顺序写入配置文件;然后,用户向服务器输入系统分配操作,服务器响应该系统分配操作,并基于该系统分配操作,获取分布式任务流编排系统,这样即可有效获取相应的配置文件。
可选的,在分配分布式任务流编排系统时,第一类平台能够以Docker形式在后台运行该分布式任务流编排系统。
可选的,服务器获取配置文件,可以包括但不限于以下至少一种实现方式:
实现方式1:配置文件还可以包括与服务器对应的目标标识信息,目标标识信息可用于区别其它配置文件。服务器获取多个标识信息及服务器中的预设标识信息;该服务器在从多个标识信息中,确定存在与预设标识信息相同的目标标识信息的情况下,获取目标标识信息对应的配置文件。
其中,预设标识信息可以是用户在服务器中预先自定义的标识信息,使得该服务器具有唯一性。
由于目标标识信息可用于区别其它配置文件,所以,不同的服务器对应的目标标识信息是不同的,也即,该目标标识信息具有唯一性,该目标标识信息对应的配置文件也具有唯一性。
服务器在获取多个标识信息及该服务器中的预设标识信息,可以将这多个标识信息中的标识信息逐一与该预设标识信息进行比较;如果该服务器从这多个标识信息中确定存在与该预设标识信息相同的标识信息,那么,可以将该相同的标识信息确定为目标标识信息,并获取该相同的标识信息所对应的配置文件,即该服务器能够得到该目标标识信息对应的配置文件。
需要说明的是,服务器获取多个标识信息及获取预设标识信息的时序不限。
示例性的,服务器获取了三个标识信息,分别为第一标识信息、第二标识信息及第三标识信息;该服务器还获取了该服务器中的预设标识信息;然后,该服务器将预设标识信息分别与上述三个标识信息进行匹配,如果,该服务器确定该预设标识信息与该第三标识信息相同,那么,就可以将该第三标识信息确定为目标标识信息;接着,该服务器可以获取该第三标识信息对应的配置文件,即获取该目标标识信息对应的配置文件。
实现方式2:服务器在预设时间获取配置文件。
可选的,预设时间可以是用户根据实际需求自定义的。
示例性的,假设预设时间为每个月10号15:00。服务器在检测到该服务器的当前时间为当月10号15:00的情况下,获取配置文件。
在一些实施例中,配置文件还包括多个任务中首个任务对应的执行时间点,该方法还可以包括:服务器在到达执行时间点的情况下,执行首个任务。
服务器在获取配置文件之后,可以先确定多个任务中首个任务对应的执行时间点;然后,该服务器获取该服务器的当前时间,并在该当前时间到达该执行时间点的情况下,自动触发执行该首个任务。
102、服务器在根据执行顺序确定执行完多个任务中第一任务的情况下,向服务器集群对应的目标服务节点发送第一指示。
目标服务节点接收服务器发送的第一指示。
其中,第一指示用于指示服务器已执行完第一任务;
服务器在获取配置文件之后,可以先基于执行顺序,确定多个任务中的第一任务;然后,该服务器执行该第一任务,并在确定该服务器执行完该第一任务的情况下,生成“已执行完该第一任务”的指示消息,即生成第一指示;接着,该服务器可以将该第一指示向目标服务节点发送,该目标服务节点接收该服务器发送的该第一指示。
可选的,服务器执行第一任务,可以包括:服务器调用服务器对应服务平台的执行指令;该服务器基于执行指令,执行第一任务。
其中,执行指令指的是服务平台解析配置文件时使用的解析程序代码所对应的程序代码指令,不同服务平台对应的执行指令是不同的。
由于不同的服务器对应的配置文件的执行程序是不同的,所以,服务器在获取配置文件之后,可以先调用该服务器对应服务平台的执行程序;然后,该服务器利用该执行程序,对配置文件所包括的内容进行解析,准确得到多个任务中的第一任务;接着,该服务器提取该执行程序对应的执行指令,并基于该执行指令,执行该第一任务。
可选的,在服务器对应服务平台为第一类平台,且第一类平台为Linux平台的情况下,执行指令为Linux Bash指令;在服务平台为第一类平台,且第一类平台为Docker平台的情况下,执行指令为Docker指令;在服务平台为第二类平台,且第二类平台不为PythonSpark平台的情况下,执行指令为Python指令。
其中,Linux Bash指令指的是命令解释器(Shell)中的一种解释指令,该Shell指的是提供用户使用界面的软件;
Docker指令指的是Docker接口的相关指令,可选的,Docker指令可以包括但不限于:容器生命周期管理指令、容器操作指令、容器rootfs指令、镜像仓库指令及本地镜像管理指令等;
Python指令指的是一种计算机程序设计语言,是一种动态的、面向对象的脚本语言。
也就是说,不同服务平台对应的执行指令也是不同的。
在一些实施例中,服务器在根据执行顺序确定执行完多个任务中第一任务的情况下,向服务器集群对应的目标服务节点发送第一指示,可以包括:服务器在确定执行完第一任务的情况下,确定第一任务对应的执行结果;该服务器在执行结果指示第一任务被正常执行完毕的情况下,向目标服务节点发送第一指示。
服务器在执行完第一任务之后,可以获取相应的执行结果;然后,该服务器根据该执行结果,判断该第一任务是否被正常执行完毕:如果该执行结果指示该第一任务被正常执行完毕,那么,该服务器可以生成第一指示,并将该第一指示向目标服务节点发送;如果该执行结果指示该第一任务未被正常执行,那么,该服务器输出提示信息,该提示信息用于提示用户该服务器无法正常执行该第一任务。
可选的,服务器输出提示信息,可以包括但不限于以下至少一种实现方式:
实现方式1:服务器以文字形式输出提示信息。
可选的,文字形式可以是服务器出厂前设置的,也可以是用户自定义的,此处不作具体限定。
实现方式2:服务器将提示信息向关联设备发送,以使该关联设备输出该提示信息。
可选的,关联设备可以包括:计算机、移动终端及可穿戴设备等。
可选的,服务器与关联设备之间可通过上述无线通信技术进行连接。
需要说明的是,无论是实现方式1,还是实现方式2,都可灵活使得用户及时获知该服务器无法正常执行该第一任务。
103、目标服务节点在基于服务器集群中所有服务器发送的第一指示,确定所有服务器均已执行完第一任务的情况下,向所有服务器发送第二指示。
服务器接收目标服务节点发送的第二指示。
其中,第二指示用于控制执行多个任务中的第二任务,第一任务和第二任务为执行顺序相邻的两个任务。
服务器向目标服务节点发送第一指示之后,该目标服务节点可以接收该服务器发送的该第一指示;该目标服务节点在接收了服务器集群中每个服务器分别发送的第一指示之后,可以生成第二指示,并向该服务器发送该第二指示;然后,该服务器接收该目标服务节点发送的该第二指示。
也就是说,服务器集群中每个服务器为了保证可以同时执行同一任务,可以先将“已执行完第一任务”的第一指示向目标服务节点发送;该目标服务节点接收所有服务器发送的第一指示,在确定该第一指示的数量与服务器的数量相同的情况下,即,在确定所有服务器均已执行完第一任务的情况下,生成第二指示,并向上述每个服务器都发送该第二指示。
在一些实施例中,目标服务节点向所有服务器发送第二指示,可以包括:目标服务节点基于第一指示和预设的多个任务对应的执行顺序,从多个任务中确定第二任务;该目标服务节点生成第二任务对应的第二指示,并向所有服务器发送第二指示。
其中,预设的多个任务对应的执行顺序域上述配置文件中包括的执行顺序是相同的。
目标服务节点在获取所有服务器发送的第一指示之后,可以基于该第一指示及预设的多个任务对应的执行顺序,先从该多个任务中确定出第二任务;然后,该目标服务节点生成该第二任务对应的第二指示,以指示服务器可执行多个任务中的第二任务;最后,该目标服务节点将该第二指示向服务器集群中所有服务器发送。
104、服务器基于第二指示,执行多个任务中的第二任务。
服务器在接收目标服务节点发送的第二指示之后,可以基于第二指示,执行与第一任务相邻的第二任务。
需要说明的是,由于目标服务节点将第二指示可以向服务器集群中的每个服务器发送,所以,每个服务器在执行完第一任务之后,并不会直接执行第二任务,而是需要在接收到该目标服务节点发送的该第二指示之后,同时执行第二任务,这样就可以保证分布式情况下任务状态的同步执行。
在一些实施例中,服务器执行多个任务中的第二任务,可以包括:服务器调用服务器对应服务平台的执行指令;该服务器基于执行指令,执行多个任务中的第二任务。
服务器在接收目标服务节点发送的第二指示之后,可以先根据该配置文件,可以先调用该服务器对应服务平台的执行程序;然后,该服务器利用该执行程序,对配置文件所包括的内容进行解析,准确得到与第一任务相邻的第二任务;接着,该服务器提取该执行程序对应的执行指令,并基于该执行指令,执行该第二任务。
示例性的,如图2所示,是本发明提供的分布式任务执行方法的场景示意图。在图2中,服务器集群可以包括两个服务器,分别为第一服务器及第二服务器。
该第一服务器可执行第一任务,并在执行完该第一任务的情况下,向zookeeper服务节点发送第一目标指示消息,该第一目标指示消息用于指示该第一服务器已执行完该第一任务;该第二服务器也可执行该第一任务,并在执行完该第一任务的情况下,向zookeeper服务节点发送第二目标指示消息,该第二目标指示消息用于指示该第二服务器已执行完该第一任务。
然后,该zookeeper服务节点在接收该第一目标指示消息及该第二目标指示消息之后,生成第二指示,并将该第二指示分别发送给该第一服务器及该第二服务器。
接着,该第一服务器基于接收的该第二指示,继续执行第二任务,同时,该第二服务器基于接收的该第二指示,继续执行该第二任务。
也就是说,zookeeper服务节点可创建一个屏障节点(node),在确定所有第一任务都被执行完毕的情况下,开始指示每个服务器去执行第二任务,以保证分布式情况下任务状态的同步执行。
其中,上述屏障节点可用“/b1”表示,可作为单个进程节点的父节点,该屏障节点是一种原语,可使一组进程(例如:第一任务及第二任务)能够同步计算开始和结束;zookeeper服务节点可在每个服务器下分别创建一个子节点,该子节点可用“/b1/p”表示。
在该zookeeper服务节点接收到所有服务器发送的第一指示之后,该zookeeper服务节点可删除所有的子节点“/b1/p”,以便每个服务器可继续执行下一相同任务,也即,只有当所有服务器都执行完第一任务时,才会穿过屏障节点,再同时去执行第二任务。
可选的,在步骤101之后,该方法还可以包括:服务器在确定服务器对应服务平台为第二类平台,且第二类平台为Python Spark平台的情况下,根据配置文件,按照执行顺序,执行每个任务。
服务器可以响应用户的打包指令,并基于该打包指令,将配置文件代码进行打包编译,得到一个Python的包;然后,该服务器将该Python的包存储在Python的site-packages目录中。
该服务器在执行每个任务的过程中,可以以模块的形式执行Python代码,即执行代码时在Python的包查找路径(sys.path)中搜索命名模块并将其内容作为模块执行。
由于Python Spark平台本身的特性,服务器执行的每个任务都是由该PythonSpark平台统一调集分布式资源,这样一来,每个任务都可视作分布式任务,相当于任务自身确保了分布式情况下执行顺序与定义的一致。
综上,该方法不仅可以在第一类平台中实现,还可以在第二类平台中实现,也就是说,分布式任务流编排系统可被有效分配至不同的服务平台,可有效实现跨平台的分布式任务执行。
在本发明实施例中,服务器获取配置文件;服务器在根据执行顺序确定执行完多个任务中第一任务的情况下,向服务器集群对应的目标服务节点发送第一指示;目标服务节点接收服务器发送的第一指示;目标服务节点在基于服务器集群中所有服务器发送的第一指示,确定所有服务器均已执行完第一任务的情况下,向所有服务器发送第二指示;服务器接收目标服务节点发送的第二指示;服务器基于第二指示,执行多个任务中的第二任务。该方法用以解决现有的分布式任务执行方法中,由于每个服务器都是独立执行多个任务的,所以,就无法保证分布式情况下任务状态同步执行的缺陷,实现服务器集群中每个服务器都可与目标服务节点进行信息交互,从而有效保证该每个服务器在执行完第一任务之后,能够同时执行第二任务,即有效保证分布式情况下任务状态的同步执行。
如图3所示,是本发明提供的目标服务节点的结构示意图,可以包括:
收发模块301,用于接收服务器发送的第一指示,该服务器为该目标服务节点对应的服务器集群中的任一服务器,该第一指示用于指示该服务器已执行完多个任务中第一任务;在处理模块302基于该服务器集群中所有服务器发送的第一指示,确定该所有服务器均已执行完该第一任务的情况下,向该所有服务器发送第二指示,该第二指示用于控制执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务.
可选的,处理模块302,具体用于基于该第一指示和预设的多个任务对应的执行顺序,从该多个任务中确定该第二任务;生成该第二任务对应的第二指示;
收发模块301,具体用于向该所有服务器发送该第二指示。
如图4所示,是本发明提供的服务器的结构示意图,可以包括:
获取模块401,用于获取配置文件,该配置文件包括多个任务及该多个任务对应的执行顺序;
收发模块402,用于在处理模块403根据该执行顺序确定执行完该多个任务中第一任务的情况下,向该服务器集群对应的目标服务节点发送第一指示,该第一指示用于指示服务器已执行完该第一任务;接收该目标服务节点发送的第二指示;
处理模块403,用于基于该第二指示,执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
可选的,该配置文件还包括该多个任务中首个任务对应的执行时间点,处理模块403,具体用于在到达该执行时间点的情况下,执行该首个任务。
可选的,处理模块403,具体用于在确定执行完该第一任务的情况下,确定该第一任务对应的执行结果;
收发模块402,具体用于在该执行结果指示该第一任务被正常执行完毕的情况下,向该目标服务节点发送该第一指示。
可选的,处理模块403,具体用于调用该服务器对应服务平台的执行指令;基于该执行指令,执行该多个任务中的第二任务。
如图5所示,是本发明提供的服务节点的结构示意图,该服务器可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行应用于服务节点的分布式任务执行方法,该方法包括:接收服务器发送的第一指示,该服务器为该目标服务节点对应的服务器集群中的任一服务器,该第一指示用于指示该服务器已执行完多个任务中第一任务;在基于该服务器集群中所有服务器发送的第一指示,确定该所有服务器均已执行完该第一任务的情况下,向该所有服务器发送第二指示,该第二指示用于控制执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
如图6所示,是本发明提供的服务器的结构示意图,该服务器可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行应用于服务器的分布式任务执行方法,该方法包括:获取配置文件,该配置文件包括多个任务及该多个任务对应的执行顺序;在根据该执行顺序确定执行完该多个任务中第一任务的情况下,向该服务器集群对应的目标服务节点发送第一指示,该第一指示用于指示服务器已执行完该第一任务;接收该目标服务节点发送的第二指示;基于该第二指示,执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的应用于服务节点的分布式任务执行方法,该方法包括:接收服务器发送的第一指示,该服务器为该目标服务节点对应的服务器集群中的任一服务器,该第一指示用于指示该服务器已执行完多个任务中第一任务;在基于该服务器集群中所有服务器发送的第一指示,确定该所有服务器均已执行完该第一任务的情况下,向该所有服务器发送第二指示,该第二指示用于控制执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
或,计算机能够执行上述各方法所提供的应用于服务器的分布式任务执行方法,该方法包括:获取配置文件,该配置文件包括多个任务及该多个任务对应的执行顺序;在根据该执行顺序确定执行完该多个任务中第一任务的情况下,向该服务器集群对应的目标服务节点发送第一指示,该第一指示用于指示服务器已执行完该第一任务;接收该目标服务节点发送的第二指示;基于该第二指示,执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的应用于服务节点的分布式任务执行方法,该方法包括:接收服务器发送的第一指示,该服务器为该目标服务节点对应的服务器集群中的任一服务器,该第一指示用于指示该服务器已执行完多个任务中第一任务;在基于该服务器集群中所有服务器发送的第一指示,确定该所有服务器均已执行完该第一任务的情况下,向该所有服务器发送第二指示,该第二指示用于控制执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
或,该计算机程序被处理器执行时实现以执行上述各方法提供的应用于服务器的分布式任务执行方法,该方法包括:获取配置文件,该配置文件包括多个任务及该多个任务对应的执行顺序;在根据该执行顺序确定执行完该多个任务中第一任务的情况下,向该服务器集群对应的目标服务节点发送第一指示,该第一指示用于指示服务器已执行完该第一任务;接收该目标服务节点发送的第二指示;基于该第二指示,执行该多个任务中的第二任务,该第一任务和该第二任务为该执行顺序相邻的两个任务。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种分布式任务执行方法,其特征在于,应用于目标服务节点,所述方法包括:
接收服务器发送的第一指示,所述服务器为所述目标服务节点对应的服务器集群中的任一服务器,所述第一指示用于指示所述服务器已执行完多个任务中第一任务;
在基于所述服务器集群中所有服务器发送的第一指示,确定所述所有服务器均已执行完所述第一任务的情况下,向所述所有服务器发送第二指示,所述第二指示用于控制执行所述多个任务中的第二任务,所述第一任务和所述第二任务为所述执行顺序相邻的两个任务。
2.根据权利要求1所述的方法,其特征在于,所述向所述所有服务器发送第二指示,包括:
基于所述第一指示和预设的多个任务对应的执行顺序,从所述多个任务中确定所述第二任务;
生成所述第二任务对应的第二指示,并向所述所有服务器发送所述第二指示。
3.一种分布式任务执行方法,其特征在于,应用于服务器集群中的任一服务器,所述方法包括:
获取配置文件,所述配置文件包括多个任务及所述多个任务对应的执行顺序;
在根据所述执行顺序确定执行完所述多个任务中第一任务的情况下,向所述服务器集群对应的目标服务节点发送第一指示,所述第一指示用于指示服务器已执行完所述第一任务;
接收所述目标服务节点发送的第二指示;
基于所述第二指示,执行所述多个任务中的第二任务,所述第一任务和所述第二任务为所述执行顺序相邻的两个任务。
4.根据权利要求3所述的方法,其特征在于,所述配置文件还包括所述多个任务中首个任务对应的执行时间点,所述方法还包括:
在到达所述执行时间点的情况下,执行所述首个任务。
5.根据权利要求3或4所述的方法,其特征在于,所述在根据所述执行顺序确定执行完所述多个任务中第一任务的情况下,向所述服务器集群对应的目标服务节点发送第一指示,包括:
在确定执行完所述第一任务的情况下,确定所述第一任务对应的执行结果;
在所述执行结果指示所述第一任务被正常执行完毕的情况下,向所述目标服务节点发送所述第一指示。
6.根据权利要求3所述的方法,其特征在于,所述执行所述多个任务中的第二任务,包括:
调用所述服务器对应服务平台的执行指令;
基于所述执行指令,执行所述多个任务中的第二任务。
7.一种目标服务节点,其特征在于,包括:
收发模块,用于接收服务器发送的第一指示,所述服务器为所述目标服务节点对应的服务器集群中的任一服务器,所述第一指示用于指示所述服务器已执行完多个任务中第一任务;在处理模块基于所述服务器集群中所有服务器发送的第一指示,确定所述所有服务器均已执行完所述第一任务的情况下,向所述所有服务器发送第二指示,所述第二指示用于控制执行所述多个任务中的第二任务,所述第一任务和所述第二任务为所述执行顺序相邻的两个任务。
8.一种服务器,其特征在于,包括:
获取模块,用于获取配置文件,所述配置文件包括多个任务及所述多个任务对应的执行顺序;
收发模块,用于在处理模块根据所述执行顺序确定执行完所述多个任务中第一任务的情况下,向所述服务器集群对应的目标服务节点发送第一指示,所述第一指示用于指示服务器已执行完所述第一任务;接收所述目标服务节点发送的第二指示;
所述处理模块,用于基于所述第二指示,执行所述多个任务中的第二任务,所述第一任务和所述第二任务为所述执行顺序相邻的两个任务。
9.一种服务节点,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1或2所述分布式任务执行方法。
10.一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求3-6中任一项所述分布式任务执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211561559.2A CN115576700A (zh) | 2022-12-07 | 2022-12-07 | 分布式任务执行方法、服务节点及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211561559.2A CN115576700A (zh) | 2022-12-07 | 2022-12-07 | 分布式任务执行方法、服务节点及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576700A true CN115576700A (zh) | 2023-01-06 |
Family
ID=84590120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211561559.2A Pending CN115576700A (zh) | 2022-12-07 | 2022-12-07 | 分布式任务执行方法、服务节点及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576700A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190042303A1 (en) * | 2015-09-24 | 2019-02-07 | Wangsu Science & Technology Co.,Ltd. | Distributed storage-based file delivery system and method |
CN110290180A (zh) * | 2019-05-31 | 2019-09-27 | 北京大米科技有限公司 | 分布式任务调度方法、装置、计算机设备和存储介质 |
CN113364839A (zh) * | 2021-05-26 | 2021-09-07 | 武汉虹旭信息技术有限责任公司 | 服务调用方法、服务调用装置及zookeeper集群 |
-
2022
- 2022-12-07 CN CN202211561559.2A patent/CN115576700A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190042303A1 (en) * | 2015-09-24 | 2019-02-07 | Wangsu Science & Technology Co.,Ltd. | Distributed storage-based file delivery system and method |
CN110290180A (zh) * | 2019-05-31 | 2019-09-27 | 北京大米科技有限公司 | 分布式任务调度方法、装置、计算机设备和存储介质 |
CN113364839A (zh) * | 2021-05-26 | 2021-09-07 | 武汉虹旭信息技术有限责任公司 | 服务调用方法、服务调用装置及zookeeper集群 |
Non-Patent Citations (4)
Title |
---|
SHUZHOU12: ""zookeeper读书笔记十 zookeeper实现分布式屏障Barriers"", 《CSDN》 * |
WEIXIN_30887919: ""ZooKeeper屏障和队列的指南(七)"", 《CSDN》 * |
WEIXIN_30907523: ""17. ZooKeeper常见的分布式系统任务——屏障"", 《CSDN》 * |
WEIXIN_34059951: ""ZooKeeper屏障和队列的指南(五)"", 《CSDN》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389900B (zh) | 一种分布式数据库集群测试方法、装置及存储介质 | |
CN108418862B (zh) | 基于人工智能服务云平台的微服务管理方法和系统 | |
CN107590186B (zh) | 管理和执行数据处理策略的方法和策略引擎系统 | |
CN108306917A (zh) | 数据处理方法和装置、微服务模块的注册方法及装置 | |
CN108021400B (zh) | 数据处理方法及装置、计算机存储介质及设备 | |
CN113220431B (zh) | 跨云的分布式数据任务调度方法、设备及存储介质 | |
CN107451147A (zh) | 一种kafka集群动态切换的方法和装置 | |
CN110781576B (zh) | 一种仿真节点调度方法、装置及设备 | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
CN112306864A (zh) | 基于微服务的Mock测试方法和系统、存储介质、计算设备 | |
CN113296991B (zh) | 异常检测方法以及装置 | |
CN113064735A (zh) | 业务处理方法及装置 | |
CN117270864A (zh) | 代码编译方法、装置、设备及存储介质 | |
CN114168252A (zh) | 信息处理系统及方法、网络方案推荐组件及方法 | |
CN115576700A (zh) | 分布式任务执行方法、服务节点及服务器 | |
CN113704046A (zh) | 一种故障告警处理方法及装置、设备、存储介质 | |
CN113708971A (zh) | 一种Openstack云平台的部署方法及相关装置 | |
US11811804B1 (en) | System and method for detecting process anomalies in a distributed computation system utilizing containers | |
CN111381867A (zh) | 支持服务重构的打包部署方法及装置 | |
CN113778673B (zh) | 数据处理方法、存储介质及设备 | |
CN108694046A (zh) | 容器装配方法和装置 | |
CN116719627B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN117632522A (zh) | 任务处理方法、装置、设备和存储介质 | |
CN114168347A (zh) | 信息处理方法、装置、服务器及存储介质 | |
Myers et al. | Improving Performance and Battery Consumption through Edge Computing |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230106 |
|
RJ01 | Rejection of invention patent application after publication |