CN109814998A - 一种多进程任务调度的方法及装置 - Google Patents
一种多进程任务调度的方法及装置 Download PDFInfo
- Publication number
- CN109814998A CN109814998A CN201910058888.7A CN201910058888A CN109814998A CN 109814998 A CN109814998 A CN 109814998A CN 201910058888 A CN201910058888 A CN 201910058888A CN 109814998 A CN109814998 A CN 109814998A
- Authority
- CN
- China
- Prior art keywords
- task
- thread
- processed
- scheduling
- 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.)
- Pending
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明的实施例提供一种多进程任务调度的方法及装置,涉及计算机领域,能够提高任务调度的效率。该方法包括:Zookeeper服务器启动多个进程,通过各个进程的调度线程为每个进程分配进程节点标识ID,在多个进程中获取目标进程,根据目标进程的调度线程访问共享资源中的任务列表,其中,任务列表中存储有至少一个任务的配置信息;Zookeeper服务器在任务列表中选取至少一个待处理的任务,通过目标进程的调度线程将至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
Description
技术领域
本发明的实施例涉及计算机领域,尤其涉及一种多进程任务调度的方法及装置。
背景技术
随着大数据时代的来临,为发现及有效利用数据中的潜在价值,针对海量数据的处理与运算成为人们关注的重点问题。在传统架构下依靠单台高性能服务器完成各类计算任务,已无法满足需求。
在完成系统架构向X86化、云化演进后,数据集中存储在分布式文件系统、数据库或消息中间件中,针对数据的各类计算任务也分布在集群中各个节点上进行。为了对运行在不同节点或不同进程中的任务进行有效的调度和管理,近些年产生了很多适用于分布式系统里的任务调度框架。这些调度框架有一个共同点就是任务调度和任务执行分离,整体架构分为主从两部分,一部分是调度器(scheduler),一部分是执行器(executor)。其中scheduler负责接收任务请求,按既定的策略将任务发送到集群的特定节点上执行,以及对任务的生命周期进行管理等;而executor运行在集群中的计算节点上,负责任务的运行。
目前此类调度框架中,调度器是核心组件,任务执行的可靠性可以通过失败-重试等策略得到保障,但由于调度器是单点的,因此会存在“单点故障”,即scheduler所在节点或服务宕机后,将无法继续对任务进行调度和管理;同时因为调度器是所有任务的统一“入口”,当短期内有大量任务提交时,一定程度上会存在调度延迟的问题,对需要保存、读取断点信息和有关联关系的任务组等有个性化调度需求的任务调度支持不够。
发明内容
本发明的实施例提供一种多进程任务调度的方法及装置,能够提高任务调度的效率。
第一方面,提供一种多进程任务调度的方法,包括如下步骤:Zookeeper服务器启动多个进程,通过各个进程的调度线程为每个进程分配进程节点标识ID;Zookeeper服务器在多个进程中获取目标进程,根据目标进程的调度线程访问共享资源中的任务列表,其中,任务列表中存储有至少一个任务的配置信息;Zookeeper服务器在任务列表中选取至少一个待处理的任务;Zookeeper服务器通过目标进程的调度线程将至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
上述方案中,由于Zookeeper服务器启动多个进程,通过各个进程的调度线程为每个进程分配进程节点标识ID,在多个进程中获取目标进程,根据目标进程的调度线程访问共享资源中的任务列表,其中,任务列表中存储有至少一个任务的配置信息;Zookeeper服务器在任务列表中选取至少一个待处理的任务,通过目标进程的调度线程将至少一个待处理的任务发送至任务执行器中的工作线程进行执行。由于通过多个进程的调度线程向任务执行器发送待处理的任务,这样每个进程均相当于现有技术中的一个调度器,从而避免了任务调度和任务执行分离,属于无中心式调度,提高了任务调度的效率。
第二方面,提供一种多进程任务调度的装置,用于Zookeeper服务器或Zookeeper服务器的芯片,包括:启动模块,用于启动多个进程,通过各个进程的调度线程为每个进程分配进程节点标识ID;获取模块,用于在所述启动模块启动的所述多个进程中获取目标进程,根据所述目标进程的调度线程访问共享资源中的任务列表,其中,所述任务列表中存储有至少一个任务的配置信息;所述获取模块,还用于在所述任务列表中选取至少一个待处理的任务;执行模块,用于通过所述获取模块获取的所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
第三方面,提供一种多进程任务调度的装置,包括通信接口、处理器、存储器、总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述多进程任务调度的装置运行时,所述处理器执行所述存储器存储的计算机执行指令,以使所述多进程任务调度的装置执行如上述的多进程任务调度的方法。
第四方面,提供一种计算机存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如上述的多进程任务调度的方法。
第五方面,提供一种计算机程序产品,所述计算机程序产品包括指令代码,所述指令代码用于执行如上述的多进程任务调度的方法。
可以理解地,上述提供的任多进程任务调度的装置、计算机存储介质或计算机程序产品均用于执行上文所提供的第一方面对应的方法,因此,其所能达到的有益效果可参考上文第一方面的方法以及下文具体实施方式中对应的方案的有益效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的一种任务调度框架示意图;
图2为本发明的实施例提供的一种多进程任务调度方法示意图;
图3为本发明的实施例提供的一种Zookeeper服务器系统架构示意图;
图4为本发明的实施例提供的一种多进程任务调度装置的结构示意图;
图5为本发明的另一实施例提供的一种多进程任务调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对本申请的实施例中应用的技术术语解释如下:
Zookeeper:一个分布式的,开放源码的分布式应用协调服务,是Google的Chubby的开源实现,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置管理、域名服务、分布式锁、组服务等。
进程:运行在不同节点上、具有相同业务处理逻辑,用来完成任务分配、任务运行、任务状态管理等工作的实体。
调度线程:进程中用于任务调度的线程,其中,调度线程用于完成与其他进程的协作、任务获取、任务运行状态管理等功能。
线程池:进程中用于执行任务的一组线程。
工作线程:用于执行任务的线程。
在完成系统架构向X86化、云化演进后,数据集中存储在分布式文件系统、数据库或消息中间件中,针对数据的各类计算任务也分布在集群中各个节点上进行。为了对运行在不同节点或不同进程中的任务进行有效的调度和管理,近些年产生了很多适用于分布式系统里的任务调度框架。这些调度框架有一个共同点就是任务调度和任务执行分离,整体架构分为主从两部分,参照图1所示,一部分是调度器,一部分是执行器。其中调度器负责接收任务请求,按既定的策略将任务发送到集群的特定节点上执行,以及对任务的生命周期进行管理等;而执行器运行在集群中的计算节点上,负责任务的运行,如图1所示,执行器1上运行有任务1、任务3,执行器2上运行有任务2、任务5、任务7,执行器3上运行有任务4、任务6。
目前此类调度框架中,调度器是核心组件,任务执行的可靠性可以通过失败-重试等策略得到保障,但由于调度器是单点的,因此会存在“单点故障”,即调度器所在节点或服务宕机后,将无法继续对任务进行调度和管理;同时因为调度器是所有任务的统一“入口”,当短期内有大量任务提交时,一定程度上会存在调度延迟的问题,对需要保存、读取断点信息和有关联关系的任务组等有个性化调度需求的任务调度支持不够。
为解决上述问题,提供一种多进程任务调度的方法,参照图2所示,具体包括如下步骤:
201、启动多个进程,通过各个进程的调度线程为每个进程分配进程节点标识ID。
每个进程中的调度线程,在进程启动时,都会在Zookeeper服务器的节点目录(/NODES)下创建一个临时类型(EPHEMERAL_SEQUENTIAL,临时-有序)的进程节点,参照图3所示,并得到已创建进程节点的ID,作为当前进程的标识,每个进程正在处理或处理完成的任务,将记录在对应的进程节点里。
202、在多个进程中获取目标进程,根据目标进程的调度线程访问共享资源中的任务列表。
为实现在多个进程中获取目标进程,需要对Zookeeper服务器所启动的进程配置锁,具体的,Zookeeper服务器通过每个进程的调度线程中资源管理器(resmanager)部分为每个进程创建子节点,在Zookeeper服务器的锁目录(/LOCKS)下,创建类型为临时节点类型(EPHEMERAL_SEQUENTIAL,临时-有序)的子节点,参照图3所示,创建成功后,返回已创建子节点的ID,根据已创建子节点的ID按照进程的ID以及每个进程创建子节点的时间顺序依次为多个进程配置锁,则步骤202具体包括若Zookeeper服务器确定多个进程中的任一进程的调度线程分配到锁,则确定所述任一进程为目标进程。示例性的,其中对10个进程按照进程创建子节点的时间顺序排序后,每个进程对应的子节点的索引位置依次为0-9,则即判断当前进程节点ID在排序后的/LOCKS目录下的所有子节点中的索引位置,若为0,则确定拿到锁;否则挂起等待。同时Zookeeper服务器通过调度线程中的资源管理器注册/LOCKS子节点变化监控器。对子节点变化的事件进行监控,确定拿到锁的子节点对应的进程即为拿到锁的进程,则将拿到锁的进程确定为目标进程。
目标进程的调度线程访问共享资源中的任务列表,任务列表中存储有至少一个任务的配置信息,其中任务列表中的任务配置信息分为任务的静态配置信息和运行状态信息。客户端通过调用系统提供的应用程序的调用接口(application programinterface,API),参照图3所示,实现将待执行任务的配置信息写入到Zookeeper服务器的任务配置目录(/TASKS)下,对于每个任务,会在配置目录下创建一个持久化类型(PERSISTENT)的任务节点。其中,任务节点的ID为任务配置的消息摘要算法(message-digest algorithm 5,md5)值,任务节点的内容为任务的配置信息。同时,在该任务节点下创建名为TASK_STATE、EXPECT_STATE、CHECK_POINT的三个状态子节点(图中未示出),其中TASK_STATE用来保存任务的运行状态、EXPECT_STATE用来保存任务的期望状态以及CHECK_POINT用来保存任务的断点信息。
203、在任务列表中选取至少一个待处理的任务。
Zookeeper服务器获取拿到锁的目标进程的调度线程,访问共享资源中的任务列表,结合目标进程的节点的资源剩余情况,按负载均衡的策略,从任务列表中,选取相应数量未分配出去的任务,将选取的任务ID,添加到/NODES下目标进程节点的数据中。同时,将对应任务节点下的EXPECT_STATE状态子节点的值设为RUNNING,TASK_STATE状态子节点的值设为STAGING,表示该任务即将处理。
204、通过目标进程的调度线程将至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
目标进程的调度线程读取待处理任务的配置信息,判断待处理任务具备运行条件,对待处理任务进行初始化后,将其交由任务执行器,即由任务执行器在线程池中调用工作线程进行处理,并更新任务节点下TASK_STATE状态子节点的值为RUNNING,表示该任务正在处理中。
其中,在目标进程的调度线程选取任务并发送至任务执行器之后,目标进程的调度线程释放目标进程持有的锁。当目标进程释放持有的锁之后,Zookeeper服务器便可以参照步骤202具体描述的方式将锁分配给其他的进程。
在实现多进程任务调度的过程中,除了正常的任务调度之外还可能出现任务运行失败、进程异常等情况,针对这些意外情况,本申请还提供了任务断点信息管理、任务失败处理、进程异常处理等应对措施。由于,任务节点下创建名为TASK_STATE、EXPECT_STATE、CHECK_POINT的三个状态子节点,并通过TASK_STATE用来保存任务的运行状态、EXPECT_STATE用来保存任务的期望状态以及CHECK_POINT用来保存任务的断点信息。因此对于任务断点信息的管理,为确保任务运行过程中出现问题后,可以对任务进行二次调度、实现无缝恢复,对有状态的任务,须由目标进程的调度线程定期将任务运行过程中的断点信息,如消息Kafka消息的分区offset,采集并保存到任务节点下CHECK_POINT状态子节点中。
对于工作线程执行任一待处理的任务失败时,通过目标进程的调度线程重新将任一待处理的任务重新发送至任务执行器中的工作线程进行执行,直至失败的次数超过预定值后,配置任一待处理的任务的状态为失败状态。即待处理任务运行过程中出现问题导致待处理任务处理失败后,由目标进程的调度线程在配置的失败重试次数范围内,对失败的任务进行重新初始化并提交至任务执行器中的工作线程处理,初始化时会读取保存在Zookeeper或内存中的断点信息;失败重试次数超过配置值后,将任务节点下的TASK_STATE子节点的值设为FAILED,表示该任务处理失败,并把该任务ID从进程的任务节点中移除。
确定目标进程宕机时,配置至少一个待处理的任务的断点信息,通过其他进程的调度线程将至少一个待处理的任务发送至任务执行器中的工作线程进行执行。即某个进程宕机后,对应调度线程与Zookeeper的连接会断开,/NODES下对应的节点因为是临时节点,会被自动清除,该进程上运行的任务,将由其他进程接管,按Zookeeper上最后一次记录的断点信息,重新初始化并运行。
上述方案中,由于Zookeeper服务器启动多个进程,通过各个进程的调度线程为每个进程分配节点标识ID,在多个进程中获取目标进程,根据目标进程的调度线程访问共享资源中的任务列表,其中,任务列表中存储有至少一个任务的配置信息;Zookeeper服务器在任务列表中选取至少一个待处理的任务,通过目标进程的调度线程将至少一个待处理的任务发送至任务执行器中的工作线程进行执行。在上述方案中,通过多个进程的调度线程向任务执行器发送待处理的任务,这样每个进程均相当于现有技术中的一个调度器,从而避免了任务调度和任务执行分离,属于无中心式调度,提高了任务调度的效率。进一步的,采用分布式锁的方式依次通过目标进程中的调度线程访问共享资源中的任务列表,以实现任务的调度和分配,任务的调度不依赖单一的调度器,任务运行在所有进程中,进程的地位是平等的,系统的处理能力随着进程数的增加可实现线性增长,提高了任务调度的效率。
参照图4所示,提供一种多进程任务调度的装置,包括:
启动模块41,用于启动多个进程,通过各个进程的调度线程为每个进程分配节点标识ID。
获取模块43,用于在所述启动模块41启动的所述多个进程中获取目标进程,根据所述目标进程的调度线程访问共享资源中的任务列表,其中,所述任务列表中存储有至少一个任务的配置信息;所述获取模块43,还用于在所述任务列表中选取至少一个待处理的任务。
执行模块44,用于通过所述获取模块43获取的所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
可选的,还包括配置模块42,用于通过所述启动模块41启动的每个所述进程的调度线程为所述每个进程创建子节点,并按照为每个所述进程创建所述子节点的时间顺序以及所述进程的ID,通过每个所述进程的调度线程依次为所述多个进程配置锁。所述获取模块43在所述多个进程中获取目标进程,具体用于,若所述多个进程中的任一进程的调度线程确定分配到锁,则确定所述任一进程为所述目标进程;所述执行模块44还用于通过所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行之前,通过所述目标进程的调度线程释放所述目标进程持有的锁。
可选的,所述配置模块42还用于通过所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行后,配置所述至少一个待处理的任务的状态为运行状态。
可选的,所述配置模块42,还用于确定所述工作线程执行任一所述待处理的任务失败时,所述执行模块通过所述目标进程的调度线程重新将任一所述待处理的任务重新发送至所述任务执行器中的工作线程进行执行,直至失败的次数超过预定值后,配置任一所述待处理的任务的状态为失败状态。
可选的,所述配置模块42,还用于确定所述目标进程宕机时,配置所述至少一个待处理的任务的断点信息,所述执行模块44,还用于通过其他进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
在采用集成的模块的情况下,多进程任务调度的装置包括:存储单元、处理单元以及接口单元。处理单元用于对多进程任务调度的装置的动作进行控制管理,例如,处理单元用于支持多进程任务调度的装置执行图2中的过程201-204。接口单元,用于支持多进程任务调度的装置与其他设备的信息交互。存储单元,用于存储多进程任务调度的装置的程序代码和数据。
其中,以处理单元为处理器,存储单元为存储器,接口单元为通信接口为例。其中,多进程任务调度的装置参照图5中所示,包括通信接口501、处理器502、存储器503和总线504,通信接口501、处理器502通过总线504与存储器503相连。
处理器502可以是一个通用中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
存储器503可以是只读存储器(Read-Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器503用于存储执行本申请方案的应用程序代码,并由处理器502来控制执行。通讯接口501用于与其他设备进行信息交互,例如支持多进程任务调度的装置与其他设备的信息交互,例如从其他设备获取数据或者向其他设备发送数据。处理器502用于执行存储器503中存储的应用程序代码,从而实现本申请实施例中所述的方法。
此外,还提供一种计算存储媒体(或介质),包括在被执行时进行上述实施例中的多进程任务调度的装置执行的方法操作的指令。另外,还提供一种计算机程序产品,包括上述计算存储媒体(或介质)。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,其作用在此不再赘述。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:read-only memory,英文简称:ROM)、随机存取存储器(英文全称:random access memory,英文简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种多进程任务调度的方法,其特征在于,
Zookeeper服务器启动多个进程,通过各个进程的调度线程为每个进程分配进程节点标识ID;
Zookeeper服务器在所述多个进程中获取目标进程,根据所述目标进程的调度线程访问共享资源中的任务列表,其中,所述任务列表中存储有至少一个任务的配置信息;
Zookeeper服务器在所述任务列表中选取至少一个待处理的任务;
Zookeeper服务器通过所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
2.根据权利要求1所述的多进程任务调度的方法,其特征在于,
Zookeeper服务器在所述多个进程中获取目标进程前,还包括:
Zookeeper服务器通过每个所述进程的调度线程为所述每个进程创建子节点,并按照为每个所述进程创建所述子节点的时间顺序以及所述进程的ID,通过每个所述进程的调度线程依次为所述多个进程配置锁;
Zookeeper服务器在所述多个进程中获取目标进程,具体包括:
若Zookeeper服务器确定所述多个进程中的任一进程的调度线程分配到锁,则确定所述任一进程为所述目标进程;
Zookeeper服务器通过所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行之前,还包括:Zookeeper服务器通过所述目标进程的调度线程释放所述目标进程持有的锁。
3.根据权利要求1所述的多进程任务调度的方法,其特征在于,还包括:
所述Zookeeper服务器通过所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行后,配置所述至少一个待处理的任务的状态为运行状态。
4.根据权利要求1所述的多进程任务调度的方法,其特征在于,还包括:
Zookeeper服务器确定所述工作线程执行任一所述待处理的任务失败时,Zookeeper服务器通过所述目标进程的调度线程重新将任一所述待处理的任务重新发送至所述任务执行器中的工作线程进行执行,直至失败的次数超过预定值后,配置任一所述待处理的任务的状态为失败状态。
5.根据权利要求1所述的多进程任务调度的方法,其特征在于,还包括:
Zookeeper服务器确定所述目标进程宕机时,配置所述至少一个待处理的任务的断点信息,Zookeeper服务器通过其他进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
6.一种多进程任务调度的装置,用于Zookeeper服务器或Zookeeper服务器的芯片,其特征在于,
启动模块,用于启动多个进程,通过各个进程的调度线程为每个进程分配进程节点标识ID;
获取模块,用于在所述启动模块启动的所述多个进程中获取目标进程,根据所述目标进程的调度线程访问共享资源中的任务列表,其中,所述任务列表中存储有至少一个任务的配置信息;
所述获取模块,还用于在所述任务列表中选取至少一个待处理的任务;
执行模块,用于通过所述获取模块获取的所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
7.根据权利要求6所述的多进程任务调度的装置,其特征在于,还包括:
配置模块,用于通过所述启动模块启动的每个所述进程的调度线程为所述每个进程创建子节点,并按照为每个所述进程创建所述子节点的时间顺序以及所述进程的ID,通过每个所述进程的调度线程依次为所述多个进程配置锁;
所述获取模块,具体用于若确定所述多个进程中的任一进程的调度线程分配到锁,则确定所述任一进程为所述目标进程;
所述执行模块,还用于通过所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行之前,通过所述目标进程的调度线程释放所述目标进程持有的锁。
8.根据权利要求6所述的多进程任务调度的装置,其特征在于,还包括:配置模块还用于通过所述目标进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行后,配置所述至少一个待处理的任务的状态为运行状态。
9.根据权利要求6所述的多进程任务调度的装置,其特征在于,还包括:配置模块,还用于确定所述工作线程执行任一所述待处理的任务失败时,所述执行模块通过所述目标进程的调度线程重新将任一所述待处理的任务重新发送至所述任务执行器中的工作线程进行执行,直至失败的次数超过预定值后,配置任一所述待处理的任务的状态为失败状态。
10.根据权利要求6所述的多进程任务调度的装置,其特征在于,还包括:配置模块,还用于确定所述目标进程宕机时,配置所述至少一个待处理的任务的断点信息,所述执行模块,还用于通过其他进程的调度线程将所述至少一个待处理的任务发送至任务执行器中的工作线程进行执行。
11.一种多进程任务调度的装置,其特征在于,包括通信接口、处理器、存储器、总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述多进程任务调度的装置运行时,所述处理器执行所述存储器存储的计算机执行指令,以使所述多进程任务调度的装置执行如权利要求1-5任一项所述的多进程任务调度的方法。
12.一种计算机存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-5任一项所述的多进程任务调度的方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括指令代码,所述指令代码用于执行如权利要求1-5任一项所述的多进程任务调度的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910058888.7A CN109814998A (zh) | 2019-01-22 | 2019-01-22 | 一种多进程任务调度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910058888.7A CN109814998A (zh) | 2019-01-22 | 2019-01-22 | 一种多进程任务调度的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109814998A true CN109814998A (zh) | 2019-05-28 |
Family
ID=66603626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910058888.7A Pending CN109814998A (zh) | 2019-01-22 | 2019-01-22 | 一种多进程任务调度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109814998A (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110428453A (zh) * | 2019-07-30 | 2019-11-08 | 深圳云天励飞技术有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN110532083A (zh) * | 2019-09-04 | 2019-12-03 | 深圳市思迪信息技术股份有限公司 | 定时任务调度方法及装置 |
CN110737533A (zh) * | 2019-10-18 | 2020-01-31 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、装置及电子设备和存储介质 |
CN110990136A (zh) * | 2019-11-29 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 一种任务处理方法和任务调度器 |
CN111158889A (zh) * | 2020-01-02 | 2020-05-15 | 中国银行股份有限公司 | 一种批量任务处理方法及系统 |
CN111209103A (zh) * | 2020-01-20 | 2020-05-29 | 浙江工商大学 | 一种进程任务调度方法、装置及设备 |
CN111324435A (zh) * | 2020-02-06 | 2020-06-23 | 北京奇艺世纪科技有限公司 | 分布式任务调度及注册方法、设备和分布式任务调度系统 |
CN111367642A (zh) * | 2020-03-09 | 2020-07-03 | 中国铁塔股份有限公司 | 一种任务调度执行方法及装置 |
CN111427706A (zh) * | 2020-03-20 | 2020-07-17 | 中国联合网络通信集团有限公司 | 数据处理方法、多服务器系统、数据库、电子设备及存储介质 |
CN112001837A (zh) * | 2020-07-08 | 2020-11-27 | 北京博雅慧视智能技术研究院有限公司 | Cdvs多进程驱动方法、装置、电子设备及存储介质 |
CN112114958A (zh) * | 2019-06-21 | 2020-12-22 | 上海哔哩哔哩科技有限公司 | 资源隔离方法、分布式平台、计算机设备和存储介质 |
CN112231089A (zh) * | 2020-11-02 | 2021-01-15 | 广州市网星信息技术有限公司 | 任务调度方法、装置、设备、系统及存储介质 |
CN112395063A (zh) * | 2020-11-18 | 2021-02-23 | 云南电网有限责任公司电力科学研究院 | 一种动态多线程调度方法及系统 |
CN112416541A (zh) * | 2020-08-13 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 任务调度的方法和系统 |
CN112527489A (zh) * | 2020-12-22 | 2021-03-19 | 税友软件集团股份有限公司 | 一种任务调度方法、装置、设备及计算机可读存储介质 |
CN112839239A (zh) * | 2020-12-30 | 2021-05-25 | 广州虎牙科技有限公司 | 一种音视频加工的方法、装置及服务器 |
CN112905331A (zh) * | 2019-11-19 | 2021-06-04 | 上海商汤智能科技有限公司 | 任务处理系统、方法及装置、电子设备和存储介质 |
CN112925587A (zh) * | 2021-03-11 | 2021-06-08 | 北京百度网讯科技有限公司 | 用于初始化应用的方法和装置 |
CN113010290A (zh) * | 2021-03-18 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种任务管理方法、装置、设备及存储介质 |
CN113138812A (zh) * | 2021-04-23 | 2021-07-20 | 中国人民解放军63920部队 | 航天器任务调度方法及装置 |
CN113535346A (zh) * | 2020-04-21 | 2021-10-22 | 中移动信息技术有限公司 | 线程数量调整的方法、装置、设备及计算机存储介质 |
CN113703929A (zh) * | 2020-05-20 | 2021-11-26 | 中国移动通信集团浙江有限公司 | 一种任务调度方法、系统、计算设备和存储介质 |
CN116010047A (zh) * | 2022-12-12 | 2023-04-25 | 爱芯元智半导体(上海)有限公司 | 线程调度方法、硬件电路及电子设备 |
CN112905331B (zh) * | 2019-11-19 | 2024-06-07 | 上海商汤智能科技有限公司 | 任务处理系统、方法及装置、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064728A (zh) * | 2012-12-13 | 2013-04-24 | 河南工业大学 | 一种MapReduce任务的容错调度方法 |
CN103297456A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种分布式系统下共享资源的访问方法及分布式系统 |
CN105159767A (zh) * | 2015-09-06 | 2015-12-16 | 北京京东尚科信息技术有限公司 | 用于基于zookeeper实现分布式调度的方法和装置 |
CN106293971A (zh) * | 2016-08-15 | 2017-01-04 | 张家林 | 一种分布式任务调度的方法和装置 |
CN107025136A (zh) * | 2016-01-29 | 2017-08-08 | 中兴通讯股份有限公司 | 一种去中心化资源调度方法及系统 |
CN108228330A (zh) * | 2018-02-06 | 2018-06-29 | 北京安博通科技股份有限公司 | 一种串行化的多进程任务调度方法和装置 |
CN108304255A (zh) * | 2017-12-29 | 2018-07-20 | 北京城市网邻信息技术有限公司 | 分布式任务调度方法及装置、电子设备及可读存储介质 |
US20190012209A1 (en) * | 2015-04-17 | 2019-01-10 | Microsoft Technology Licensing, Llc | Handling tenant requests in a system that uses hardware acceleration components |
-
2019
- 2019-01-22 CN CN201910058888.7A patent/CN109814998A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297456A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种分布式系统下共享资源的访问方法及分布式系统 |
CN103064728A (zh) * | 2012-12-13 | 2013-04-24 | 河南工业大学 | 一种MapReduce任务的容错调度方法 |
US20190012209A1 (en) * | 2015-04-17 | 2019-01-10 | Microsoft Technology Licensing, Llc | Handling tenant requests in a system that uses hardware acceleration components |
CN105159767A (zh) * | 2015-09-06 | 2015-12-16 | 北京京东尚科信息技术有限公司 | 用于基于zookeeper实现分布式调度的方法和装置 |
CN107025136A (zh) * | 2016-01-29 | 2017-08-08 | 中兴通讯股份有限公司 | 一种去中心化资源调度方法及系统 |
CN106293971A (zh) * | 2016-08-15 | 2017-01-04 | 张家林 | 一种分布式任务调度的方法和装置 |
CN108304255A (zh) * | 2017-12-29 | 2018-07-20 | 北京城市网邻信息技术有限公司 | 分布式任务调度方法及装置、电子设备及可读存储介质 |
CN108228330A (zh) * | 2018-02-06 | 2018-06-29 | 北京安博通科技股份有限公司 | 一种串行化的多进程任务调度方法和装置 |
Non-Patent Citations (1)
Title |
---|
青岛英谷教育科技股份有限公司,山东工商学院: "《大数据开发与应用》", 30 September 2018 * |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114958A (zh) * | 2019-06-21 | 2020-12-22 | 上海哔哩哔哩科技有限公司 | 资源隔离方法、分布式平台、计算机设备和存储介质 |
CN110428453A (zh) * | 2019-07-30 | 2019-11-08 | 深圳云天励飞技术有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN110428453B (zh) * | 2019-07-30 | 2020-12-15 | 深圳云天励飞技术有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN110532083A (zh) * | 2019-09-04 | 2019-12-03 | 深圳市思迪信息技术股份有限公司 | 定时任务调度方法及装置 |
CN110737533A (zh) * | 2019-10-18 | 2020-01-31 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、装置及电子设备和存储介质 |
CN110737533B (zh) * | 2019-10-18 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、装置及电子设备和存储介质 |
CN112905331B (zh) * | 2019-11-19 | 2024-06-07 | 上海商汤智能科技有限公司 | 任务处理系统、方法及装置、电子设备和存储介质 |
CN112905331A (zh) * | 2019-11-19 | 2021-06-04 | 上海商汤智能科技有限公司 | 任务处理系统、方法及装置、电子设备和存储介质 |
CN110990136A (zh) * | 2019-11-29 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 一种任务处理方法和任务调度器 |
CN110990136B (zh) * | 2019-11-29 | 2024-04-09 | 北京奇艺世纪科技有限公司 | 一种任务处理方法和任务调度器 |
CN111158889A (zh) * | 2020-01-02 | 2020-05-15 | 中国银行股份有限公司 | 一种批量任务处理方法及系统 |
CN111209103A (zh) * | 2020-01-20 | 2020-05-29 | 浙江工商大学 | 一种进程任务调度方法、装置及设备 |
CN111324435A (zh) * | 2020-02-06 | 2020-06-23 | 北京奇艺世纪科技有限公司 | 分布式任务调度及注册方法、设备和分布式任务调度系统 |
CN111367642B (zh) * | 2020-03-09 | 2023-08-22 | 中国铁塔股份有限公司 | 一种任务调度执行方法及装置 |
CN111367642A (zh) * | 2020-03-09 | 2020-07-03 | 中国铁塔股份有限公司 | 一种任务调度执行方法及装置 |
CN111427706A (zh) * | 2020-03-20 | 2020-07-17 | 中国联合网络通信集团有限公司 | 数据处理方法、多服务器系统、数据库、电子设备及存储介质 |
CN111427706B (zh) * | 2020-03-20 | 2023-06-20 | 中国联合网络通信集团有限公司 | 数据处理方法、多服务器系统、数据库、电子设备及存储介质 |
CN113535346B (zh) * | 2020-04-21 | 2024-03-19 | 中移动信息技术有限公司 | 线程数量调整的方法、装置、设备及计算机存储介质 |
CN113535346A (zh) * | 2020-04-21 | 2021-10-22 | 中移动信息技术有限公司 | 线程数量调整的方法、装置、设备及计算机存储介质 |
CN113703929B (zh) * | 2020-05-20 | 2023-08-01 | 中国移动通信集团浙江有限公司 | 一种任务调度方法、系统、计算设备和存储介质 |
CN113703929A (zh) * | 2020-05-20 | 2021-11-26 | 中国移动通信集团浙江有限公司 | 一种任务调度方法、系统、计算设备和存储介质 |
CN112001837A (zh) * | 2020-07-08 | 2020-11-27 | 北京博雅慧视智能技术研究院有限公司 | Cdvs多进程驱动方法、装置、电子设备及存储介质 |
CN112416541A (zh) * | 2020-08-13 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 任务调度的方法和系统 |
CN112231089A (zh) * | 2020-11-02 | 2021-01-15 | 广州市网星信息技术有限公司 | 任务调度方法、装置、设备、系统及存储介质 |
CN112395063B (zh) * | 2020-11-18 | 2023-01-20 | 云南电网有限责任公司电力科学研究院 | 一种动态多线程调度方法及系统 |
CN112395063A (zh) * | 2020-11-18 | 2021-02-23 | 云南电网有限责任公司电力科学研究院 | 一种动态多线程调度方法及系统 |
CN112527489A (zh) * | 2020-12-22 | 2021-03-19 | 税友软件集团股份有限公司 | 一种任务调度方法、装置、设备及计算机可读存储介质 |
CN112839239A (zh) * | 2020-12-30 | 2021-05-25 | 广州虎牙科技有限公司 | 一种音视频加工的方法、装置及服务器 |
CN112925587A (zh) * | 2021-03-11 | 2021-06-08 | 北京百度网讯科技有限公司 | 用于初始化应用的方法和装置 |
CN113010290A (zh) * | 2021-03-18 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种任务管理方法、装置、设备及存储介质 |
CN113138812A (zh) * | 2021-04-23 | 2021-07-20 | 中国人民解放军63920部队 | 航天器任务调度方法及装置 |
CN116010047A (zh) * | 2022-12-12 | 2023-04-25 | 爱芯元智半导体(上海)有限公司 | 线程调度方法、硬件电路及电子设备 |
CN116010047B (zh) * | 2022-12-12 | 2023-12-15 | 爱芯元智半导体(宁波)有限公司 | 线程调度方法、硬件电路及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814998A (zh) | 一种多进程任务调度的方法及装置 | |
EP2810164B1 (en) | Managing partitions in a scalable environment | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
CN104503845B (zh) | 一种任务分发方法和系统 | |
CN100568182C (zh) | 在逻辑地分区的数据处理系统内分布工作的方法和系统 | |
US5687372A (en) | Customer information control system and method in a loosely coupled parallel processing environment | |
US8112526B2 (en) | Process migration based on service availability in a multi-node environment | |
CN109445802A (zh) | 基于容器的私有化Paas平台及其发布应用的方法 | |
CN106874084B (zh) | 一种分布式工作流调度的方法、装置及计算机设备 | |
US20070206611A1 (en) | Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters | |
US20050034130A1 (en) | Balancing workload of a grid computing environment | |
US20130103835A1 (en) | Resource management method, resource management device, and program product | |
WO2018002991A1 (ja) | 制御装置、vnf配置先選択方法及びプログラム | |
JP2004302937A (ja) | プログラム配置方法及びその実施システム並びにその処理プログラム | |
JP5767347B2 (ja) | コンピュータ・ベース・システムにおける資源割当て方法 | |
JPWO2007072544A1 (ja) | 情報処理装置、計算機、リソース割り当て方法及びリソース割り当てプログラム | |
CN113886089B (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
CN112596960A (zh) | 一种分布式存储服务切换方法及装置 | |
JP5672386B2 (ja) | 計算機およびリソース検索方法 | |
CN107122271B (zh) | 一种恢复节点事件的方法、装置及系统 | |
EP2645635B1 (en) | Cluster monitor, method for monitoring a cluster, and computer-readable recording medium | |
KR20200080458A (ko) | 클라우드 멀티-클러스터 장치 | |
WO2016121879A1 (ja) | 仮想化制御装置、配置先選択方法及びプログラム | |
EP0747812A2 (en) | Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment | |
CN115964176B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190528 |