CN116521331A - 任务调度方法、装置、任务调度系统、服务器和存储介质 - Google Patents
任务调度方法、装置、任务调度系统、服务器和存储介质 Download PDFInfo
- Publication number
- CN116521331A CN116521331A CN202210098886.2A CN202210098886A CN116521331A CN 116521331 A CN116521331 A CN 116521331A CN 202210098886 A CN202210098886 A CN 202210098886A CN 116521331 A CN116521331 A CN 116521331A
- Authority
- CN
- China
- Prior art keywords
- node
- task scheduling
- target
- thread
- content
- 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 203
- 230000008569 process Effects 0.000 claims abstract description 149
- 230000008859 change Effects 0.000 claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000011144 upstream manufacturing Methods 0.000 claims description 6
- 230000001550 time effect Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241001331845 Equus asinus x caballus Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
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/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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种任务调度方法、装置、任务调度系统、服务器和存储介质;本申请实施例可以响应于进程的启动,注册第一节点,所述第一节点为所述第一进程对应的节点;将所述第一节点的节点信息保存在空闲线程中;响应于任务调度指令,在所述空闲线程中确定目标线程,并修改所述目标节点的内容,所述目标节点为所述目标线程对应的节点;响应于所述目标节点的内容变更,根据所述变更后的内容进行推送。本方案每次都会选择空闲线程进行调度,有效地提升了资源利用率。因此,本方案可以提升任务调度的效率。
Description
技术领域
本申请涉及计算机领域,具体涉及一种任务调度方法、装置、任务调度系统、服务器和存储介质。
背景技术
任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。任务调度系统可以指挥数据平台上的各个组件有序运行,时刻监督着任务的运行情况。
然而,目前的任务调度方法效率较低。
发明内容
本申请实施例提供一种任务调度方法、装置、任务调度系统、服务器和存储介质,可以提升任务调度方法的效率。
本申请实施例提供一种任务调度方法,包括:
响应于第一进程的启动,注册第一节点,所述第一节点为所述第一进程对应的节点;
将所述第一节点的节点信息保存在空闲线程中;
响应于任务调度指令,在所述空闲线程中确定目标线程,并修改目标节点的内容,所述目标节点为所述目标线程对应的节点;
响应于所述目标节点的内容变更,根据所述变更后的内容进行推送。
本申请实施例还提供一种任务调度装置,包括:
注册模块,用于响应于第一进程的启动,注册第一节点,所述第一节点为所述第一进程对应的节点;
保存模块,用于将所述第一节点的节点信息保存在空闲线程中;
调度模块,用于响应于任务调度指令,在所述空闲线程中确定目标线程,并修改所述目标节点的内容,所述目标节点为所述目标线程对应的节点;
推送模块,用于响应于所述目标节点的内容变更时,根据所述变更后的内容进行推送。
在一些实施例中,所述注册模块,包括:
创建单元,用于创建第一节点;
生成单元,用于生成所述一节点的节点信息,所述节点信息包括关键字和内容;
在一些实施例中,所述保存模块,用于:
当所述节点的机器类型为预设类型时,将所述节点的节点信息保存在空闲线程中。
在一些实施例中,所述创建单元,用于:
创建所述第一节点和第一租约;
将所述第一节点与所述第一租约关联;
在所述第一租约的时效内,维持所述第一节点的存在,直至所述第一租约失效,注销所述第一节点。
在一些实施例中,所述将所述第一节点与所述第一租约关联之后,还包括:
当所述第一进程未停止时,对所述第一租约进行时效续期处理;
当所述第一进程停止时,对所述第一租约进行停止续期处理,以使所述第一租约失效。
在一些实施例中,还包括:
当目标进程停止时,删除所述目标线程,所述目标进程为所述目标节点对应的进程;
所述空闲线程为工作状态为空闲状态的线程,所述响应于任务调度指令,在所述空闲线程中确定目标线程,并修改目标节点的内容,还包括:
将所述目标线程的工作状态修改为繁忙状态;
所述响应于所述目标节点的内容变更时,根据所述变更后的内容进行推送,还包括:
将所述目标线程的工作状态修改为空闲状态。
本申请实施例还提供一种任务调度系统,在一些实施例中,包括推送中台,以及位于所述推送中台上游的任务调度中心、位于所述推送中台下游的消息中心,其中:
所述消息中心包括至少一个机器,用于:
所述消息中心包括至少一个机器,用于:
响应于所述机器内第一进程的启动,向所述推送中台发送所述第一进程的注册消息;
响应于从所述推送中台获取内容变更消息,根据所述内容变更消息进行推送;
所述推送中台用于:
响应于从所述消息中心获取所述第一进程的注册消息,注册第一节点,所述第一节点为所述第一进程对应的节点;
向所述任务调度中心发送所述第一节点的节点信息;
响应于从所述任务调度中心获取内容变更消息,向所述消息中心发送所述内容变更消息;
所述任务调度中心用于:
响应于从所述推送中台获取所述第一节点的节点信息,将所述第一节点的节点信息保存在空闲线程中;
响应于任务调度指令,在所述空闲线程中确定目标线程,并对目标节点进行内容变更,所述目标节点为所述目标线程对应的节点;
向所述推送中台发送内容变更消息,所述内容变更消息表征被修改的所述目标节点的内容。
本申请实施例还提供一种服务器,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种任务调度方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种任务调度方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现申请实施例所提供的任一种任务调度方法中的步骤。
本申请实施例可以响应于第一进程的启动,注册第一节点,所述第一节点为所述第一进程对应的节点;将所述第一节点的节点信息保存在空闲线程中;响应于任务调度指令,在所述空闲线程中确定目标线程,并修改目标节点的内容,所述目标节点为所述目标线程对应的节点;响应于所述目标节点的内容变更,根据所述变更后的内容进行推送。在本申请中,通过从空闲线程中挑选目标线程进行调度,从而实现进程级别的细粒度,比常规的机器级别的细粒度更细,从而提高了负载均衡的调度力度,提高了任务调度效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的任务调度系统的架构示意图;
图1b是本申请实施例提供的任务调度系统的流程示意图;
图2a是本申请实施例提供的任务调度方法的流程示意图;
图2b是本申请实施例提供的任务调度系统的流程示意图;
图2c是本申请实施例提供的任务调度方法的状态流转示意图;
图3是本申请实施例提供的任务调度装置的结构示意图;
图4是本申请实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种任务调度方法、装置、任务调度系统、服务器和存储介质。
其中,该任务调度装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(Personal Computer,PC)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
在一些实施例中,该任务调度装置还可以集成在多个电子设备中,比如,任务调度装置可以集成在多个服务器中,由多个服务器来实现本申请的任务调度方法。在一些实施例中,服务器也可以以终端的形式来实现。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
本方案提出一种分布式的任务调度系统,该任务调度系统包括推送中台,以及位于所述推送中台上游的任务调度中心、位于所述推送中台下游的消息中心。其中,推送中台是用于分享配置和进程发现的系统,任务调度中心是负责任务调度的系统,消息中心是负责任务下发的系统。
参考图1a,在一些实施例中,该分布式的任务调度系统采用controller-service模型,将推送中台连接上游的任务调度中心(controller)和下游的消息中心(service)。利用推送中台作为任务调度中心和消息中间的交互方式,实现多进程并发、负载均衡、自动容灾的强大调度机制。
参考图1b,在一些实施例中:
所述消息中心包括至少一个机器,该机器可以是电子设备,如服务器、终端等,该消息中心用于:响应于所述机器内第一进程的启动,向所述推送中台发送所述第一进程的注册消息;响应于从所述推送中台获取内容变更消息,根据所述内容变更消息进行推送。
所述推送中台用于响应于从所述消息中心获取所述第一进程的注册消息,注册第一节点,所述第一节点为所述第一进程对应的节点;向所述任务调度中心发送所述第一节点的节点信息;响应于从所述任务调度中心获取内容变更消息,向所述消息中心发送所述内容变更消息。
所述任务调度中心用于响应于从所述推送中台获取所述第一节点的节点信息,将所述第一节点的节点信息保存在空闲线程中;响应于任务调度指令,在所述空闲线程中确定目标线程,并对目标节点进行内容变更,所述目标节点为所述目标线程对应的节点;向所述推送中台发送内容变更消息,所述内容变更消息表征被修改的所述目标节点的内容。
参考图2a,在本实施例中,提供了一种基于上述任务调度的任务调度方法,该任务调度方法的具体流程如下:
210、响应于第一进程的启动,注册第一节点,第一节点为第一进程对应的节点。
消息中心可以响应于机器内进程的启动,向推送中台注册所述进程对应的节点。
其中,第一进程可以是任一机器上运行的任一进程。
例如,参考图2b,消息中心可以包括多个机器,每个机器内可以同时运行多个进程,其中,机器M3内同时运行有进程p1~p5,当进程p6在机器M3内启动并运行,则消息中心可以向推送中台注册进程p6对应的节点。例如,消息中心可以向推送中台注册进程p6对应的节点node3。
在一些实施例中,步骤210可以包括如下步骤:
创建第一节点;
生成第一节点的节点信息,节点信息包括关键字和内容。
其中,节点信息是用于描述其对应进程的注册信息,关键字用于表明该进程的身份,内容用于表明任务内容。
在一些实施例中,由于消息中心的每台机器内运行有多个进程,因此,本方案提出一种关键字(key),用于识别每个节点所对应的进程,即关键字用于表征一机器内的一进程,该关键字包括机器类型、机器地址(ip)、进程地址(pid)。其中,机器类型用于表征机器的服务类型,该服务类型为机器的固有属性,不同服务类型的机器用于提供不同类型的服务。
在一些实施例中,在新注册一节点时,该节点的初始的内容(value)为空,在后续可以写入包括任务id(identity)、通道id、号码包id和起始分片等信息,其中,号码包id用于识别号码包,号码包中记录至少一个用户的终端号码。
在一些实施例中,该服务类型可以分为push类型、pull类型和其他类型等等。push类型的机器用于提供push服务,pull类型的机器用于提供pull服务,其他类型的机器用于提供除push和pull以外其他的服务。
为了实现多进程并发、负载均衡、自动容灾的强大调度机制,在本方案中,提出一种节点注册机制:
通过创建租约(Lease)和节点(Node),并将其相互关联、给租约续期3步来实现。该进程存活的时候,节点因租约不断续期而持续存在,进程因关机、服务重启、程序核心转储(core dump)等原因停止的时候,节点因得不到续期而消亡,这样推送中台上仅存在可正常工作的进程所对应的节点,防止异常进程所对应的节点被任务调度中心调度的同时,减少异常进程所占用的计算资源。
因此,在一些实施例中,步骤“创建进程对应的节点”可以包括如下步骤:
创建第一节点和第一租约;
将第一节点与第一租约关联;
在第一租约的时效内,维持第一节点的存在,直至第一租约失效,注销第一节点。
其中,第一租约是指为第一节点所创建的租约。
在一些实施例中,步骤“将节点与租约关联”之后,还可以包括如下步骤:
当第一进程未停止时,对第一租约进行时效续期处理;
当第一进程停止时,对第一租约进行停止续期处理,以使第一租约失效。
在一些实施例中,节点创建完成后,消息中心进程还需要对该节点进行监测(Watch),以实现节点的内容出现变更时被通知到。
220、将第一节点的节点信息保存在空闲线程中。
任务调度中心可以将所述节点的节点信息保存在空闲线程中。
在一些实施例中,关键字可以包括机器类型,步骤220可以包括如下步骤:
当节点的机器类型为预设类型时,将节点的节点信息保存在空闲线程中。
该预设类型可以指push类型。例如,当节点的机器类型为push类型,即push机器时,任务调度中心可以一次性地将push机器内运行线程对应的节点信息保存在空闲线程中,从而使得任务调度中心只调度push机器上运行的进程,防止非push机器上运行的进程占用任务调用系统的计算资源。
参考图2b,在一些实施例中,任务调度中心可以使用Redis(一种key-value存储系统)作为存储,使用哈希散列(Redis-Hash)结构和Redis-Zset结构存放获取到的进程(worker),从而构成进程列表。其中,哈希结构存放进程信息,Redis-Zset结构存放进程列表,其中,其中,ip是机器地址,pid是进程地址,mtime是进程加入列表的时间,status是线程的状态,order_id是调度指令。
230、响应于任务调度指令,在空闲线程中确定目标线程,并修改目标节点的内容,目标节点为目标线程对应的节点。
在一些实施例中,还可以包括如下步骤:
当目标进程停止时,删除目标线程,目标进程为目标节点对应的进程;
在一些实施例中,空闲线程为工作状态为空闲状态的线程,步骤230还可以包括如下步骤:
将目标线程的工作状态修改为繁忙状态。
例如,在一些实施例中,执行完该进程的任务调度后,可以将进程列表清空,并置进程信息中的status为繁忙(busy),表示该进程当前正在执行任务,不允许再接收调度。
240、响应于目标节点的内容变更时,根据变更后的内容进行推送,还包括。
消息中心响应于所述目标节点的内容变更,根据所述内容进行推送,即消息中心将消息发送给号码包中所有用户。
在一些实施例中,消息中心可以通过推送中台监测节点的内容变更,即写入的任务id,应用id,号码包id等信息的变更。
在一些实施例中,步骤240还可以包括如下步骤:
将目标线程的工作状态修改为空闲状态。
比如,在一些实施例中,执行完成后消息中心可以通知任务调度中心,修改进程的状态(status)为空闲,并将新的进程信息重新加入到进程列表,以便下次任务的调度。
以上210~240四步中,进程的状态流转如图2c所示:
进程启动并完成注册后,进程状态为空闲(free);调度指令指定该进程调度后,该进程的进程状态为繁忙(busy);完成该进程的任务推送后,重置该进程的进程状态为空闲(free),或者,当推送耗时过长,重置该进程的进程状态为空闲(free);进程无论是因服务发布、配置更新、进程重启、进程core dump、机器宕机、机器断电等导致停止或退出时,该进程对应的节点由于得不到续期而被注销,因此该进程从进程列表中删除。
在本方案中,推送中台可以是任一种推送系统,例如,RPC(Remote ProcedureCall,一种远程过程调用系统)、Kafka(一种分布式的、基于发布/订阅的消息系统)、Zookeeper(一种分布式服务框架)、ETCD(一种分布式、以key-value形式进行存储的分布式系统)等。
在一些实施例中,推送中台可以是RPC,在任务下发时,调度中心调用RPC接口去请求消息中心对这一批次用户同步执行频率控制、内容去重、骡马实验、请求通道等逻辑,最终给调度中心回包,调度中心更新任务进展,开启下一轮调度。该方式易实现,无需引入第三方组件。但RPC由于系统耦合严重、推送接口逻辑复杂且变更频繁(容易增加修改实验策略),因此易影响到调度系统。而且消息中心的负载均衡完全依赖网络路由,无法考虑不同任务调度的轻重程度,因此可能造成负载不均的问题。
在一些实施例中,推送中台可以是Kafka,调度中心作为生产者,消息中心作为消费者。任务下发时,调度中心发送消息到Kafka,消息中心异步的消费消息并执行任务推送逻辑。该方法由于引入了Kafka,极大的解耦了调度中心和消息中心,且Kafka的可靠性可极大程度的保证推送流程的成功。然而,调度中心和消息中心彻底解藕后会带来消息生产速度和消费速度不匹配的问题,当调度中心调度速度明显快于消息中心推送速度的时候,尽管Kafka的“拉模式”消费不会压垮消息中心,但消息堆积,消费阻塞问题同样会影响到任务下发的实效性。此外,消息中心在负载均衡方面也面临和RPC方式同样的问题,只能依赖网络路由做到节点流量均衡,却无法实现进程粒度的CP U负载均衡。
在一些实施例中,推送中台可以是Zookeeper,利用Zookeeper的变更Watch机制连接调度中心和消息中心,消息中心服务启动时,每个进程在Zookeeper上注册对应节点和监测,调度中心维护实时的消息中心空闲进程列表,每次执行任务调度时,选择空闲的消息中心进程,在Zookeeper对应节点写入内容,并从空闲进程列表只删除。Zookeeper稳定的监测机制保证消息中心对应进程们执行任务推送,并在执行完推送流程后接口通知调度中心,调度中心再将进程信息插入到空闲进程列表,等待下次任务调度时分派。利用Zookeeper的Watch机制解藕了调度中心和控制中心,双方各自只需要负责各自的事情,调度中心负责任务调度,消息中心负责任务推送。然而利用Zookeeper的节点机制保证了调度的细粒度,调度中心每次选择空闲的消息中心进程进行推送,保证消息中心进程不会出现进程忙死或饿死的现象,保证负载均衡。
在一些实施例中,为了解决RPC方式耦合重、负载不均衡的问题;Kafka方式服务间无法感知导致消息积压、消费阻塞、负载不均衡的问题;ZooKeeper方式安装、运维成本高的问题;推送中台可以设置为ETCD,采用典型的controller-service模型,将ETCD集群应用于push中台,连接上游的任务调度(controller)和下游的消息中心(service)。利用其高性能读写、强一致性以及变更监测能力,作为调度中心和消息中间的交互方式,实现多进程并发、负载均衡、自动容灾的强大调度机制。
基于ETCD推送中台的上述调度流程具有自动容灾、负载均衡、提高资源利用率、兜底等特性,其中:
1)自动容灾:
因为注册到推送中台的节点需要对租约不断续期才能存活,一旦进程异常,节点会自动删除,任务调度服务能及时将对应进程从本地队列中剔除;
2)负载均衡:
任务调度服务通过维护实时的空闲进程列表,并每次挑选空闲的进程进行调度,从而达到进程级别细粒度的负载均衡,比常规的节点级别负载均衡调度力度更细,效果更好;
3)提高资源利用率:
每次空闲进程执行调度,调度到马上执行无需等待。理论上可以达到的效果是,进程处于空闲状态时,被选中执行调度,状态变为繁忙,推送完成后通知任务调度,状态置为空闲后马上接受下一次调度,从而使进程一直处在繁忙状态,资源利用率得到提升;
4)增强系统鲁棒性:
网络故障、任务调度服务重启等调度失败时,进程不能及时释放,但任务调度的兜底轮询会在一次轮询过程中发现进程存在且状态长时间未更新,因此会将进程状态置为空闲,释放进程。
由上可知,本申请实施例可以响应于第一进程的启动,注册第一节点,第一节点为第一进程对应的节点;将第一节点的节点信息保存在空闲线程中;响应于任务调度指令,在空闲线程中确定目标线程,并修改目标节点的内容,目标节点为目标线程对应的节点;响应于目标节点的内容变更,根据变更后的内容进行推送。在本方案中每个机器中启动的每个进程通过节点来与空闲线程绑定,通过从空闲线程中挑选目标线程进行调度,从而实现进程级别的细粒度,相比常规调度方法机器级别的细粒度更细,由此本方案可以在实现多进程并发、自动容灾的强大调度机制的同时,提高负载均衡的调度力度,从而提高了任务调度效率。
为了更好地实施以上方法,本申请实施例还提供一种任务调度装置,该任务调度装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以任务调度装置具体集成在任务调度系统中为例,对本申请实施例的方法进行详细说明。
例如,如图3所示,该任务调度装置可以包括注册模块301、保存模块302、调度模块303以及推送模块304,如下:
注册模块301用于响应于第一进程的启动,注册第一节点,所述第一节点为所述第一进程对应的节点;
保存模块302用于将所述第一节点的节点信息保存在空闲线程中;
调度模块303用于响应于任务调度指令,在所述空闲线程中确定目标线程,并修改所述目标节点的内容,所述目标节点为所述目标线程对应的节点;
推送模块304用于响应于所述目标节点的内容变更时,根据所述变更后的内容进行推送。
在一些实施例中,所述注册模块,包括:
创建单元,用于创建第一节点;
生成单元,用于生成所述一节点的节点信息,所述节点信息包括关键字和内容;
在一些实施例中,所述保存模块,用于:
当所述节点的机器类型为预设类型时,将所述节点的节点信息保存在空闲线程中。
在一些实施例中,所述创建单元,用于:
创建所述第一节点和第一租约;
将所述第一节点与所述第一租约关联;
在所述第一租约的时效内,维持所述第一节点的存在,直至所述第一租约失效,注销所述第一节点。
在一些实施例中,所述将所述第一节点与所述第一租约关联之后,还包括:
当所述第一进程未停止时,对所述第一租约进行时效续期处理;
当所述第一进程停止时,对所述第一租约进行停止续期处理,以使所述第一租约失效。
在一些实施例中,还包括:
当目标进程停止时,删除所述目标线程,所述目标进程为所述目标节点对应的进程;
所述空闲线程为工作状态为空闲状态的线程,所述响应于任务调度指令,在所述空闲线程中确定目标线程,并修改目标节点的内容,还包括:
将所述目标线程的工作状态修改为繁忙状态;
所述响应于所述目标节点的内容变更时,根据所述变更后的内容进行推送,还包括:
将所述目标线程的工作状态修改为空闲状态。
本申请实施例还提供一种任务调度系统,在一些实施例中,包括推送中台,以及位于所述推送中台上游的任务调度中心、位于所述推送中台下游的消息中心,其中:
所述消息中心包括至少一个机器,用于:
所述消息中心包括至少一个机器,用于:
响应于所述机器内第一进程的启动,向所述推送中台发送所述第一进程的注册消息;
响应于从所述推送中台获取内容变更消息,根据所述内容变更消息进行推送;
所述推送中台用于:
响应于从所述消息中心获取所述第一进程的注册消息,注册第一节点,所述第一节点为所述第一进程对应的节点;
向所述任务调度中心发送所述第一节点的节点信息;
响应于从所述任务调度中心获取内容变更消息,向所述消息中心发送所述内容变更消息;
所述任务调度中心用于:
响应于从所述推送中台获取所述第一节点的节点信息,将所述第一节点的节点信息保存在空闲线程中;
响应于任务调度指令,在所述空闲线程中确定目标线程,并对目标节点进行内容变更,所述目标节点为所述目标线程对应的节点;
向所述推送中台发送内容变更消息,所述内容变更消息表征被修改的所述目标节点的内容。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的任务调度装置由注册模块响应于第一进程的启动,注册第一节点,第一节点为第一进程对应的节点;由保存模块将第一节点的节点信息保存在空闲线程中;由调度模块响应于任务调度指令,在空闲线程中确定目标线程,并修改目标节点的内容,目标节点为目标线程对应的节点;由推送模块响应于目标节点的内容变更时,根据变更后的内容进行推送。
由此,本申请实施例可以提升任务调度效率。
本申请实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。
在一些实施例中,该任务调度装置还可以集成在多个电子设备中,比如,任务调度装置可以集成在多个服务器中,由多个服务器来实现本申请的任务调度方法。
在本实施例中,将以本实施例的电子设备是服务器为例进行详细描述,比如,如图4所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403、输入模块404以及通信模块405等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监测。在一些实施例中,处理器401可包括一个或多个处理核心;在一些实施例中,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
服务器还包括给各个部件供电的电源403,在一些实施例中,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入模块404,该输入模块404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该服务器还可包括通信模块405,在一些实施例中通信模块405可以包括无线模块,服务器可以通过该通信模块405的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块405可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的目标进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
响应于第一进程的启动,注册第一节点,第一节点为第一进程对应的节点;
将第一节点的节点信息保存在空闲线程中;
响应于任务调度指令,在空闲线程中确定目标线程,并修改目标节点的内容,目标节点为目标线程对应的节点;
响应于目标节点的内容变更,根据变更后的内容进行推送。
在一些实施例中,还提出一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述任一种任务调度方法中的步骤。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本方案实施例可以提升任务调度方法的效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种任务调度方法中的步骤。例如,该指令可以执行如下步骤:
响应于第一进程的启动,注册第一节点,第一节点为第一进程对应的节点;
将第一节点的节点信息保存在空闲线程中;
响应于任务调度指令,在空闲线程中确定目标线程,并修改目标节点的内容,目标节点为目标线程对应的节点;
响应于目标节点的内容变更,根据变更后的内容进行推送。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中提供的任务调度方面或者任务推送方面的各种可选实现方式中提供的方法。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种任务调度方法中的步骤,因此,可以实现本申请实施例所提供的任一种任务调度方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种任务调度方法、装置、服务器和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种任务调度方法,其特征在于,包括:
响应于第一进程的启动,注册第一节点,所述第一节点为所述第一进程对应的节点;
将所述第一节点的节点信息保存在空闲线程中;
响应于任务调度指令,在所述空闲线程中确定目标线程,并修改目标节点的内容,所述目标节点为所述目标线程对应的节点;
响应于所述目标节点的内容变更,根据所述变更后的内容进行推送。
2.如权利要求1所述的任务调度方法,其特征在于,所述响应于第一进程的启动,注册第一节点,包括:
创建第一节点;
生成所述第一节点的节点信息,所述节点信息包括关键字和内容。
3.如权利要求2所述的任务调度方法,其特征在于,所述关键字包括机器类型,所述将所述第一节点的节点信息保存在空闲线程中,包括:
当所述节点的机器类型为预设类型时,将所述节点的节点信息保存在空闲线程中。
4.如权利要求2所述的任务调度方法,其特征在于,所述创建第一节点,包括:
创建所述第一节点和第一租约;
将所述第一节点与所述第一租约关联;
在所述第一租约的时效内,维持所述第一节点的存在,直至所述第一租约失效,注销所述第一节点。
5.如权利要求4所述的任务调度方法,其特征在于,所述将所述第一节点与所述第一租约关联之后,还包括:
当所述第一进程未停止时,对所述第一租约进行时效续期处理;
当所述第一进程停止时,对所述第一租约进行停止续期处理,以使所述第一租约失效。
6.如权利要求1所述的任务调度方法,其特征在于,还包括:
当目标进程停止时,删除所述目标线程,所述目标进程为所述目标节点对应的进程;
所述空闲线程为工作状态为空闲状态的线程,所述响应于任务调度指令,在所述空闲线程中确定目标线程,并修改目标节点的内容,还包括:
将所述目标线程的工作状态修改为繁忙状态;
所述响应于所述目标节点的内容变更时,根据所述变更后的内容进行推送,还包括:
将所述目标线程的工作状态修改为空闲状态。
7.一种任务调度装置,其特征在于,包括:
注册模块,用于响应于第一进程的启动,注册第一节点,所述第一节点为所述第一进程对应的节点;
保存模块,用于将所述第一节点的节点信息保存在空闲线程中;
调度模块,用于响应于任务调度指令,在所述空闲线程中确定目标线程,并修改所述目标节点的内容,所述目标节点为所述目标线程对应的节点;
推送模块,用于响应于所述目标节点的内容变更时,根据所述变更后的内容进行推送。
8.一种任务调度系统,其特征在于,包括推送中台,以及位于所述推送中台上游的任务调度中心、位于所述推送中台下游的消息中心,其中:
所述消息中心包括至少一个机器,用于:
响应于所述机器内第一进程的启动,向所述推送中台发送所述第一进程的注册消息;
响应于从所述推送中台获取内容变更消息,根据所述内容变更消息进行推送;
所述推送中台用于:
响应于从所述消息中心获取所述第一进程的注册消息,注册第一节点,所述第一节点为所述第一进程对应的节点;
向所述任务调度中心发送所述第一节点的节点信息;
响应于从所述任务调度中心获取内容变更消息,向所述消息中心发送所述内容变更消息;
所述任务调度中心用于:
响应于从所述推送中台获取所述第一节点的节点信息,将所述第一节点的节点信息保存在空闲线程中;
响应于任务调度指令,在所述空闲线程中确定目标线程,并对目标节点进行内容变更,所述目标节点为所述目标线程对应的节点;
向所述推送中台发送内容变更消息,所述内容变更消息表征被修改的所述目标节点的内容。
9.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~6任一项所述的任务调度方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~6任一项所述的任务调度方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210098886.2A CN116521331A (zh) | 2022-01-24 | 2022-01-24 | 任务调度方法、装置、任务调度系统、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210098886.2A CN116521331A (zh) | 2022-01-24 | 2022-01-24 | 任务调度方法、装置、任务调度系统、服务器和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521331A true CN116521331A (zh) | 2023-08-01 |
Family
ID=87398133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210098886.2A Pending CN116521331A (zh) | 2022-01-24 | 2022-01-24 | 任务调度方法、装置、任务调度系统、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521331A (zh) |
-
2022
- 2022-01-24 CN CN202210098886.2A patent/CN116521331A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866903B (zh) | 将后台工作和前台工作解耦合 | |
CN105190555B (zh) | 集中式任务调度 | |
TWI488035B (zh) | 用於聚集重覆性排程以最佳化資源耗用之電腦可讀取媒體、方法與系統 | |
WO2019153488A1 (zh) | 服务配置管理方法、装置、存储介质和服务器 | |
JP4992408B2 (ja) | ジョブ割当プログラム、方法及び装置 | |
US20120137006A1 (en) | Computing system and computing system management method | |
CN114138434B (zh) | 一种大数据任务调度系统 | |
CN111427751A (zh) | 基于异步处理机制对业务进行处理的方法及系统 | |
CN111586140A (zh) | 一种数据交互的方法及服务器 | |
CN113485806A (zh) | 处理任务的方法、装置、设备和计算机可读介质 | |
CN112069266A (zh) | 一种数据同步方法及服务节点 | |
CN112346834A (zh) | 数据库的请求处理方法和装置、电子设备和介质 | |
CN112068940A (zh) | 实时任务调度方法、装置、调度系统及存储介质 | |
CN113485812B (zh) | 基于大数据量任务的分区并行处理方法及系统 | |
CN117149414A (zh) | 一种任务处理方法、装置、电子设备及可读存储介质 | |
CN111429033A (zh) | 一种工作流任务调度系统、方法及服务终端 | |
CN114900449A (zh) | 一种资源信息管理方法、系统及装置 | |
CN116521331A (zh) | 任务调度方法、装置、任务调度系统、服务器和存储介质 | |
EP4443291A1 (en) | Cluster management method and device, and computing system | |
JP4363417B2 (ja) | コンピュータ装置およびコンピュータ制御方法 | |
CN116032932A (zh) | 针对边缘服务器的集群管理方法、系统、设备及介质 | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 | |
CN114840324A (zh) | 一种转码任务调度方法、系统、电子设备及存储介质 | |
CN115934304A (zh) | 一种数据处理方法、装置、计算机设备及可读存储介质 | |
CN113703982A (zh) | 使用kafka的数据消费方法、装置、终端设备及介质 |
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 |