CN117056058B - 基于状态感知的任务调度方法、***、设备及存储介质 - Google Patents

基于状态感知的任务调度方法、***、设备及存储介质 Download PDF

Info

Publication number
CN117056058B
CN117056058B CN202311310819.3A CN202311310819A CN117056058B CN 117056058 B CN117056058 B CN 117056058B CN 202311310819 A CN202311310819 A CN 202311310819A CN 117056058 B CN117056058 B CN 117056058B
Authority
CN
China
Prior art keywords
scheduling
algorithm
target
data source
target weather
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.)
Active
Application number
CN202311310819.3A
Other languages
English (en)
Other versions
CN117056058A (zh
Inventor
霍庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Meteorological Information Center Meteorological Data Center Of China Meteorological Administration
Original Assignee
National Meteorological Information Center Meteorological Data Center Of China Meteorological Administration
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Meteorological Information Center Meteorological Data Center Of China Meteorological Administration filed Critical National Meteorological Information Center Meteorological Data Center Of China Meteorological Administration
Priority to CN202311310819.3A priority Critical patent/CN117056058B/zh
Publication of CN117056058A publication Critical patent/CN117056058A/zh
Application granted granted Critical
Publication of CN117056058B publication Critical patent/CN117056058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于状态感知的任务调度方法、***、设备及存储介质,涉及气象任务调度技术领域,包括对各个数据源消息对应的数据源到报率进行统计和更新;当检测到与目标数据源消息对应的目标数据源到报率大于或等于与所述目标数据源消息对应的到报率阈值时,基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,以供调度客户端基于所述目标气象算法调度指令启动运行目标气象算法。通过本申请,不仅可有效提升任务调度效率,且可避免资源浪费。

Description

基于状态感知的任务调度方法、***、设备及存储介质
技术领域
本申请涉及气象任务调度技术领域,具体涉及一种基于状态感知的任务调度方法、***、设备及存储介质。
背景技术
随着气象业务的发展,用户对***的运行效率及其产品生成时效有了更高的要求,其中,运行效率与产品生成时效一方面依赖于算法的计算效率,另一方面还依赖于算法的启动时效。在计算效率不变的情况下,若能将算法的启动时间提前,则产品生成时效也能提前,而这就需要具备更智能的调度方法使得算法能在条件满足时第一时间被启动。气象业务中的数据加工处理算法往往是通过数据驱动运行的,即算法运行时要求数据必须达到一定的完整性,否则所生成的产品质量会受到很大影响。
在目前的气象业务中,算法常采用定时调度的方式运行,或者为了提升计算的及时性,将算法做成常驻内存的方式运行,但这两种方式在调度时效性和资源利用合理性等方面存在较大弊端。其中,定时调度一般是通过目录扫描的方式发现数据,即定时调度中发现数据的方式较为被动,以致无法完全拟合数据到报时间,其一方面会导致数据到报的第一时间无法启动算法,以致降低了算法的启动时效,而另一方面目录扫描还会造成额外的资源浪费,尤其当目录下文件数较多时;此外,算法常驻内存的方式虽可以利用监听消息的方式在数据到报的第一时间进行计算,但算法常驻内存会对资源长期占用,进而造成资源浪费。
由此可见,以数据驱动为主的气象业务亟需一种高及时性的任务调度方法,以保障气象业务的高效调度运行,实现“数据所到即算法运行”的目的。
发明内容
本申请提供一种基于状态感知的任务调度方法、***、设备及存储介质,可以解决现有技术中存在的任务调度效率低且资源浪费技术问题。
第一方面,本申请实施例提供一种基于状态感知的任务调度方法,所述基于状态感知的任务调度方法应用于调度服务端,所述方法包括以下步骤:
对各个数据源消息对应的数据源到报率进行统计和更新;
当检测到与所述目标数据源消息对应的目标数据源到报率大于或等于与所述目标数据源消息对应的到报率阈值时,基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,以供调度客户端基于所述目标气象算法调度指令启动运行目标气象算法。
结合第一方面,在一种实施方式中,所述对各个数据源消息对应的数据源到报率进行统计和更新,包括:
针对每一个数据源消息,基于数据源消息中的四级编码和数据观测时间对与所述数据源消息对应的数据源到报率进行统计和更新,并将更新后的数据源到报率存储至Redis缓存中。
结合第一方面,在一种实施方式中,所述算法执行信息包括目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及与目标气象算法对应的可执行计算节点,所述资源状态信息包括与各个可执行计算节点对应的第一资源状态信息以及与所述目标气象算法对应的第二资源状态信息,所述第一资源状态信息包括CPU使用量、内存使用量以及正在运行的算法数量,所述第二资源状态信息包括运行所述目标气象算法所需的CPU和内存量。
结合第一方面,在一种实施方式中,所述基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,包括:
基于所述第一资源状态信息和所述第二资源状态信息从可执行计算节点中筛选出目标计算节点;
基于所述目标计算节点和所述算法执行信息生成目标气象算法调度指令。
结合第一方面,在一种实施方式中,所述调度客户端基于所述目标气象算法调度指令启动运行目标气象算法,包括:
所述调度客户端对所述目标气象算法调度指令进行解析,得到目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及第二资源状态信息;
所述调度客户端基于自身所剩的资源信息和所述第二资源状态信息确定是否调度目标气象算法;
若是,则所述调度客户端基于目标气象算法ID、目标气象算法参数、目标气象算法执行命令和目标气象算法执行用户调度并启动运行目标气象算法;
若否,则所述调度客户端通过gRPC协议将目标气象算法调度失败信息发送至调度服务端。
结合第一方面,在一种实施方式中,所述方法还包括:
当所述调度服务端通过gRPC协议接收到目标气象算法调度失败信息后,进行调度异常告警提示,并将所述目标气象算法调度指令存储至Redis缓存中的阻塞队列。
第二方面,本申请实施例提供了一种基于状态感知的任务调度***,所述基于状态感知的任务调度***包括调度服务端,所述调度服务端用于:
对各个数据源消息对应的数据源到报率进行统计和更新;
当检测到与所述目标数据源消息对应的目标数据源到报率大于或等于与所述目标数据源消息对应的到报率阈值时,基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,以供调度客户端基于所述目标气象算法调度指令启动运行目标气象算法。
结合第二方面,在一种实施方式中,所述调度服务端具体用于:
针对每一个数据源消息,基于数据源消息中的四级编码和数据观测时间对与所述数据源消息对应的数据源到报率进行统计和更新,并将更新后的数据源到报率存储至Redis缓存中。
第三方面,本申请实施例提供了一种基于状态感知的任务调度设备,所述基于状态感知的任务调度设备包括处理器、存储器以及存储在所述存储器上并可被所述处理器执行的基于状态感知的任务调度程序,其中所述基于状态感知的任务调度程序被所述处理器执行时,实现如前述的基于状态感知的任务调度方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有基于状态感知的任务调度程序,其中所述基于状态感知的任务调度程序被处理器执行时,实现如前述的基于状态感知的任务调度方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过对上游业务的各个数据源消息对应的数据源到报率进行统计和更新来实时获悉和掌握气象数据的到报状态,并在满足下游业务的需求时,即在数据源到报率达到所设定的到报率阈值时,迅速发出算法调度指令,使得气象算法能够在第一时间被启动运行,不仅有效实现了对气象业务算法的及时调度和上下游业务的串接,且无需目录扫描和使算法常驻内存,在提升气象算法的调度效率和启动时效的同时,还有效避免了资源浪费。
附图说明
图1为本申请基于状态感知的任务调度方法实施例的流程示意图;
图2为本申请基于状态感知的任务调度***实施例的功能模块示意图;
图3为本申请实施例方案中涉及的基于状态感知的任务调度设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。术语“第一”、“第二”和“第三”等描述,是用于区分不同的对象等,其不代表先后顺序,也不限定“第一”、“第二”和“第三”是不同的类型。
在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
在本申请实施例描述的一些流程中,包含了按照特定顺序出现的多个操作或步骤,但是应该理解,这些操作或步骤可以不按照其在本申请实施例中出现的顺序来执行或并行执行,操作的序号仅用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作或步骤可以按顺序执行或并行执行,并且这些操作或步骤可以进行组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
第一方面,本申请实施例提供一种基于状态感知的任务调度方法。
一实施例中,参照图1,图1为本申请基于状态感知的任务调度方法实施例的流程示意图。如图1所示,基于状态感知的任务调度方法应用于调度服务端,基于状态感知的任务调度方法包括以下步骤:
步骤S10:对各个数据源消息对应的数据源到报率进行统计和更新;
示范性的,可以理解的是,气象业务的上下游关系主要依托于气象数据流程,即上游业务的输出产品作为下游业务的输入数据。不过,目前的下游业务是无法实时掌握上游业务的产品生成状态的,因此当上游业务已经完成产品生成时,往往会出现因下游业务无法实时掌握上游业务的产品生成状态而导致下游业务无法及时启动的问题,即出现气象业务脱节的现象。
在本实施例中,调度服务端将利用气象大数据云平台消息总线的特性,在全局掌握各算法的调度策略的基础上,实时采集并分析上游业务对应的各种数据源消息的到报状态,以用于对各种状态进行监视,且通过状态信息来串联业务链条上的各环节。其中,当数据源触发任务被调度服务端中的任务调度触发引擎启动时,将从Kafka(Kafka是一种高吞吐量的分布式发布订阅消息***,其可以处理消费者在网站中的所有动作流数据)中匹配上游业务对应的数据源消息并统计数据源消息的到达情况,并对各个数据源消息对应的数据源到报率进行统计和更新,进而能够实时掌握上游业务的产品生成状态,以使得在满足下游业务的需求时可及时启动下游业务的相关算法,从而实现上下游业务的实时联动。
需要说明的是,任务调度触发引擎包括外置触发引擎和内置触发引擎,其中,外置触发引擎主要为自定义触发引擎,而内置触发引擎主要包括状态感知触发引擎、定时触发引擎、工作流触发引擎以及人工触发引擎等。
步骤S20:当检测到与所述目标数据源消息对应的目标数据源到报率大于或等于与所述目标数据源消息对应的到报率阈值时,基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,以供调度客户端基于所述目标气象算法调度指令启动运行目标气象算法。
示范性的,在本实施例中,对于与每个气象算法对应的数据源消息而言,将会为其配置对应的算法调度配置信息并将其存储至配置信息库中,需要说明的是,算法调度配置信息包括但不限于与各个数据源消息对应的四级编码、预设的到报率阈值和到报率观测时间等。其中,四级编码由四个层级组成,结构为:X.YYYY.NNNN.AZZZ,其中“X”标识气象数据一级分类,用一位大写字母表示;“YYYY”标识气象数据二级分类,由4位数字或大写字母组成,前两位为数字,范围00~99,后两位为数字或大写字母;“NNNN”标识气象数据三级分类,由4位数字组成,范围0001~9999;“AZZZ”标识气象数据所处的业务环节,“A”为业务环节标识,代码用1位大写字母表示(比如R代表传输环节、P代表加工环节、S代表存储环节、M代表服务环节),“ZZZ”为本业务环节下四级资料的代码,由3位数字或大写字母组成,比如某一四级编码为J.0001.0002.S001;到报率阈值可以为到报数据条数阈值,也可以为到报数据百分比阈值,还可以是其他形式的阈值表达,且其具体值的设定可根据实际需求确定,比如以到报数据百分比阈值为例,将到报率阈值设置为95%。
到报率观测时间指的是数据源消息中的数据所对应的观测时间必须与预设的某一时间相同,比如对于气象算法X对应的数据源消息A而言,假设与数据源消息A对应的到报率观测时间为2023年9月21日08时(即2023092108),则数据源消息A中观测得到的数据A1,其对应的观测时间必须也是2023年9月21日08时,方可认为数据A1是执行气象算法X所需要的数据。
应当理解的是,配置信息库不仅用于存储算法调度配置信息,还用于存储***运行所需的支撑信息,比如算法执行信息、计算节点的资源状态信息和算法执行状态信息等。
本实施例中,在对各个数据源消息对应的数据源到报率进行统计和更新后,针对每个数据源消息,还需判断每个数据源消息对应的更新后的数据源到报率与其对应的到报率阈值间的大小关系,并基于判断结果确认是否生成算法调度指令,以使得能够第一时间调度启动对应的算法,进而实现高时效的任务调度。
具体的,以某一目标气象算法对应的目标数据源消息为例,先判断与该目标数据源消息对应的更新后的目标数据源到报率是否大于或等于与目标数据源消息对应的到报率阈值,若是,则基于与该目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,并通过消息中间件将目标气象算法调度指令发送至对应的调度客户端,以供调度客户端基于该目标气象算法调度指令启动运行目标气象算法;若否,则继续对该目标数据源消息进行到报状态的监测和更新。需要说明的是,消息中间件用于调度服务端和调度客户端之间的通信,其具体包括算法执行状态、计算节点资源状态等的更新。由此可见,本实施例不仅显著提升了气象算法的调度效率,且按自然时序与业务逻辑实现了上下游业务的串接,一定程度上解决了气象业务脱节的问题。
需要说明的是,当目标气象算法执行结束后,调度客户端会通过RabbitMQ(RabbitMQ基于高级消息队列协议的开源实现,其用于在分布式***中存储和转发消息)集群将目标气象算法的执行状态(即执行成功或执行失败)、算法执行结束时间、计算节点资源状态等发送至调度服务端,以使得调度服务端进行包括更新算法执行状态、更新计算节点资源状态等在内的算法调度后处理,至此,整个调度流程结束。
综上,本实施例通过对上游业务的各个数据源消息对应的数据源到报率进行统计和更新来实时获悉和掌握气象数据的到报状态,并在满足下游业务的需求时,即在数据源到报率达到所设定的到报率阈值时,迅速发出算法调度指令,使得气象算法能够在第一时间被启动运行,不仅有效实现了对气象业务算法的及时调度和上下游业务的串接,且无需目录扫描和使算法常驻内存,在提升气象算法的调度效率和启动时效的同时,还有效避免了资源浪费。
进一步的,一实施例中,所述对各个数据源消息对应的数据源到报率进行统计和更新,包括:
针对每一个数据源消息,基于数据源消息中的四级编码和数据观测时间对与所述数据源消息对应的数据源到报率进行统计和更新,并将更新后的数据源到报率存储至Redis缓存中。
示范性的,在本实施例中,针对每一个数据源消息而言,调度服务端将从Kafka中匹配数据源消息并统计数据源消息的到达情况。具体的,以目标数据源消息为例,目标数据源消息中会包含四级编码及数据观测时间,将目标数据源消息中的四级编码与配置信息库中所存储的与目标数据源消息对应的四级编码是否一致,若不一致,则直接丢弃该目标数据源消息;若一致,则继续判断目标数据源消息中的数据观测时间是否与配置信息库中所存储的与目标数据源消息对应的到报率观测时间一致,若不一致,则直接丢弃该目标数据源消息,而若一致,则匹配成功并将与目标数据源消息对应的数据源到报率进行更新,并将实时的更新后的数据源到报率存储至Redis缓存中。需要说明的是,本实施例通过Redis缓存可有效保证调度的低时延,即极大的提升了算法调度的延时。
进一步地,一实施例中,所述算法执行信息包括目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及与目标气象算法对应的可执行计算节点,所述资源状态信息包括与各个可执行计算节点对应的第一资源状态信息以及与所述目标气象算法对应的第二资源状态信息,所述第一资源状态信息包括CPU使用量、内存使用量以及正在运行的算法数量,所述第二资源状态信息包括运行所述目标气象算法所需的CPU和内存量。
示范性的,在本实施例中,每个数据源消息对应的算法执行信息以及各个计算节点的资源状态信息等都会存储于配置信息库中;因此,当检测到目标数据源到报率达到对应的到报率阈值时,将从配置信息库中获取与其对应的算法执行信息和资源状态信息,以使得能够算法执行信息和资源状态信息生成对应的算法调度指令。
其中,算法执行信息包括但不限于目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及与目标气象算法对应的可执行计算节点,资源状态信息包括但不限于与各个可执行计算节点对应的第一资源状态信息以及与目标气象算法对应的第二资源状态信息,第一资源状态信息包括但不限于CPU使用量、内存使用量以及正在运行的算法数量,第二资源状态信息包括但不限于运行目标气象算法所需的CPU和内存量。需要说明的是,以上算法执行信息和资源状态信息的举例仅是实施例的呈现,还可以根据实际需求对算法执行信息和资源状态信息中的相关信息进行增加或删除。
进一步地,一实施例中,所述基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,包括:
基于所述第一资源状态信息和所述第二资源状态信息从可执行计算节点中筛选出目标计算节点;
基于所述目标计算节点和所述算法执行信息生成目标气象算法调度指令。
示范性的,在本实施例中,当调度服务端实时判断目标数据源消息对应的目标数据源到报率已经达到所配置的到报率阈值后,将从配置信息库中读取包括目标气象算法的ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及目标气象算法可执行的计算节点等在内的算法执行信息,同时获取包括CPU使用量、内存使用量、正在运行的算法数量等在内的与目标气象算可执行计算节点对应的第一资源状态信息以及本次目标气象算法运行所需的CPU和内存量等第二资源状态信息;然后基于第一资源状态信息和第二资源状态信息进行资源负载判断,以确定出用于执行目标气象算法的目标计算节点(即调度客户端),进而保证算法在集群环境下调度时的最优资源分配,并通过该目标计算节点和所获取的算法执行信息来生成目标气象算法调度指令。
进一步地,一实施例中,所述调度客户端基于所述目标气象算法调度指令启动运行目标气象算法,包括:
所述调度客户端对所述目标气象算法调度指令进行解析,得到目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及第二资源状态信息;
所述调度客户端基于自身所剩的资源信息和所述第二资源状态信息确定是否调度目标气象算法;
若是,则所述调度客户端基于目标气象算法ID、目标气象算法参数、目标气象算法执行命令和目标气象算法执行用户调度并启动运行目标气象算法;
若否,则所述调度客户端通过gRPC协议将目标气象算法调度失败信息发送至调度服务端。
示范性的,在本实施例中,任务调度客户端主要用于执行调度服务端下发的算法调度指令、采集算法执行状态及计算节点的内存、CPU状态等。因此,当调度服务端生成目标气象算法调度信息后,将基于消息中间件并通过gRPC(gRPC是一个高性能、开源的和语言无关的通用 RPC 框架,其基于HTTP2协议设计并序列化使用PB(Protocol Buffer,一种语言无关的高性能序列化框架))协议将目标气象算法掉信息指令发送至与目标计算节点对应的调度客户端;调度客户端对该目标气象算法调度指令进行解析,以得到对应目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户及运行所需的CPU和内存等信息,并基于上述所得到的信息来调度并启动执行目标气象算法。需要说明的是,本实施例通过gRPC通信不仅可保证调度的低时延,且可保证调度的高稳定性。
具体的,当调度客户端对目标气象算法调度指令进行解析得到运行目标气象算法所需的CPU和内存量后,将进一步判断自身当前所剩的资源是否能够满足运行目标气象算法所需的CPU和内存量,若能够满足,则调度并启动执行目标气象算法,并通过gRPC协议将目标气象算法调度成功信息发送至调度服务端;而若不满足,则通过gRPC协议将目标气象算法调度失败信息发送至调度服务端,以及时返回调度结果。需要说明的是,若在进行目标气象算法调度时,因***故障等原因导致调度失败,也将通过gRPC协议将目标气象算法调度失败信息发送至调度服务端。
进一步地,一实施例中,所述方法还包括:
当所述调度服务端通过gRPC协议接收到目标气象算法调度失败信息后,进行调度异常告警提示,并将所述目标气象算法调度指令存储至Redis缓存中的阻塞队列。
示范性的,在本实施例中,当调度服务端通过gRPC协议接收到目标气象算法调度失败信息后,不仅会进行调度异常告警提示,且会将目标气象算法调度指令发到Redis缓存的阻塞队列中,即通过Redis的阻塞队列来存储调度客户端资源不足时的调度信息,并基于阻塞队列中所存储的目标气象算法调度指令进行重新调度,同时记录日志,若重试多次依然不成功,则直接将该目标气象算法调度丢弃,不再进行调度。可以理解的是,本实施例为了保证调度服务端的可靠性与容错性要求,将使用Redis集群对***内存中待执行的算法信息及调度中间结果进行持久化,以避免调度服务端重启或异常终止时调度信息丢失。
以下结合具体实施例说明本实施例能够有效提升算法的调度效率:以雷达数据处理流程为例,该流程包括基数据处理与组网拼图两个环节,使用本实施例提供的基于状态感知的任务调度方法来代替逐分钟定时扫描目录的处理方式实现基数据处理算法的调度启动并生成组网平产品,经统计,基数据处理时效可平均提升约20秒,而组网拼图产品的生成时效由8分钟显著提升至3分钟,为短临预报、实况等下游业务提升时效奠定了基础。其中,将本实施例应用于中国气象局气象大数据云平台“天擎”中来支撑加工流水线的数据源触发调度时,已实现150多个算法的实时调度运行,且调度时效显著提升,调度成功率能够达到100%。
综上,本实施例基于气象大数据云平台的消息总线,实时获取每种数据源消息的到报状态并进行高效处理与分析,当数据源到报率达到所设定的到报率阈值时,可以迅速发出算法调度指令,以启动执行算法;且通过应用Redis缓存、gRPC通信、容器等技术来保证调度的低时延与高稳定性,比如在300个算法同时调度时调度延时控制在毫秒级。
第二方面,本申请实施例还提供一种基于状态感知的任务调度***。
一实施例中,参照图2,图2为本申请基于状态感知的任务调度***实施例的功能模块示意图。如图2所示,基于状态感知的任务调度***包括调度服务端,调度服务端用于:
对各个数据源消息对应的数据源到报率进行统计和更新;
当检测到与所述目标数据源消息对应的目标数据源到报率大于或等于与所述目标数据源消息对应的到报率阈值时,基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,以供调度客户端基于所述目标气象算法调度指令启动运行目标气象算法。
可以理解的是,调度服务端主要用于实现数据源到报情况统计分析、计算资源负载判断、算法调度指令生成与下发及任务调度后处理,其包括任务调度触发引擎、任务调度插件、调度指令分发、任务调度负载均衡、任务执行队列管理、任务执行引擎、任务调度后处理组件、Redis缓存等模块。其中,任务调度触发引擎用于根据算法预配置的调度规则生成调度消息;任务调度插件用于根据定义的算法信息及调度消息生成算法调度指令;调度指令分发用于将生成的算法调度指令发送给调度客户端;任务调度负载均衡用于根据服务器CPU、内存筛选出负载最小的计算节点来执行本次算法;任务执行队列管理用于基于Redis缓存管理就绪及等待执行的调度消息,其中Redis缓存以高效的读写性能保障调度时效和稳定性;任务执行引擎用于通过gRPC等方式负责与计算节点的调度客户端通信;任务调度后处理组件用于负责处理任务调度结果及执行结果。
参见图2所示,本实施例中的***还包括配置信息库、消息中间件以及调度客户端。其中,配置信息库主要用于存储***运行所需的支撑信息,如算法运行框架、所需的资源大小、运行节点以及调度策略等信息;消息中间件用于通过gRPC协议、RabbitMQ集群等支撑调度服务端和调度客户端之间的通信,具体包括调度指令的下发、算法执行状态的回调及计算节点状态的回传等;调度客户端主要用于执行调度服务端下发的算法调度指令、采集算法执行状态及计算节点的内存、CPU状态等。
进一步地,一实施例中,所述调度服务端具体用于:
针对每一个数据源消息,基于数据源消息中的四级编码和数据观测时间对与所述数据源消息对应的数据源到报率进行统计和更新,并将更新后的数据源到报率存储至Redis缓存中。
进一步地,一实施例中,所述算法执行信息包括目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及与目标气象算法对应的可执行计算节点,所述资源状态信息包括与各个可执行计算节点对应的第一资源状态信息以及与所述目标气象算法对应的第二资源状态信息,所述第一资源状态信息包括CPU使用量、内存使用量以及正在运行的算法数量,所述第二资源状态信息包括运行所述目标气象算法所需的CPU和内存量。
进一步地,一实施例中,所述调度服务端具体还用于:
基于所述第一资源状态信息和所述第二资源状态信息从可执行计算节点中筛选出目标计算节点;
基于所述目标计算节点和所述算法执行信息生成目标气象算法调度指令。
进一步地,一实施例中,任务调度***还包括调度客户端,其具体用于:
对所述目标气象算法调度指令进行解析,得到目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及第二资源状态信息;
基于自身所剩的资源信息和所述第二资源状态信息确定是否调度目标气象算法;
若是,则基于目标气象算法ID、目标气象算法参数、目标气象算法执行命令和目标气象算法执行用户调度并启动运行目标气象算法;
若否,则通过gRPC协议将目标气象算法调度失败信息发送至调度服务端。
进一步地,一实施例中,所述调度服务端还用于:
当通过gRPC协议接收到目标气象算法调度失败信息后,进行调度异常告警提示,并将所述目标气象算法调度指令存储至Redis缓存中的阻塞队列。
其中,上述基于状态感知的任务调度***中各个部分的功能实现与上述基于状态感知的任务调度方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
第三方面,本申请实施例提供一种基于状态感知的任务调度设备,基于状态感知的任务调度设备可以是个人计算机(personal computer,PC)、笔记本电脑、服务器等具有数据处理功能的设备。
参照图3,图3为本申请实施例方案中涉及的基于状态感知的任务调度设备的硬件结构示意图。本申请实施例中,基于状态感知的任务调度设备可以包括处理器、存储器、通信接口以及通信总线。
其中,通信总线可以是任何类型的,用于实现处理器、存储器以及通信接口互连。
通信接口包括输入/输出(input/output,I/O)接口、物理接口和逻辑接口等用于实现基于状态感知的任务调度设备内部的器件互连的接口,以及用于实现基于状态感知的任务调度设备与其他设备(例如其他计算设备或用户设备)互连的接口。物理接口可以是以太网接口、光纤接口、ATM接口等;用户设备可以是显示屏(Display)、键盘(Keyboard)等。
存储器可以是各种类型的存储介质,例如随机存取存储器 (randomaccessmemory,RAM)、只读存储器(read-only memory,ROM)、非易失性RAM(non-volatileRAM,NVRAM)、闪存、光存储器、硬盘、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)等。
处理器可以是通用处理器,通用处理器可以调用存储器中存储的基于状态感知的任务调度程序,并执行本申请实施例提供的基于状态感知的任务调度方法。例如,通用处理器可以是中央处理器(central processing unit,CPU)。其中,基于状态感知的任务调度程序被调用时所执行的方法可参照本申请基于状态感知的任务调度方法的各个实施例,此处不再赘述。
本领域技术人员可以理解,图3中示出的硬件结构并不构成对本申请的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
第四方面,本申请实施例还提供一种计算机可读存储介质。
本申请可读存储介质上存储有基于状态感知的任务调度程序,其中所述基于状态感知的任务调度程序被处理器执行时,实现如上述的基于状态感知的任务调度方法的步骤。
其中,基于状态感知的任务调度程序被执行时所实现的方法可参照本申请基于状态感知的任务调度方法的各个实施例,此处不再赘述。
需要说明的是,上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (9)

1.一种基于状态感知的任务调度方法,其特征在于,所述基于状态感知的任务调度方法应用于调度服务端,所述方法包括以下步骤:
对各个数据源消息对应的数据源到报率进行统计和更新;
当检测到与目标数据源消息对应的目标数据源到报率大于或等于与所述目标数据源消息对应的到报率阈值时,基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,以供调度客户端基于所述目标气象算法调度指令启动运行目标气象算法,所述算法执行信息包括目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及与目标气象算法对应的可执行计算节点,所述资源状态信息包括与所述目标气象算法对应的第二资源状态信息,所述第二资源状态信息包括运行所述目标气象算法所需的CPU和内存量;
其中,所述调度客户端基于所述目标气象算法调度指令启动运行目标气象算法,包括:
所述调度客户端对所述目标气象算法调度指令进行解析,得到目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及第二资源状态信息;
所述调度客户端基于自身所剩的资源信息和所述第二资源状态信息确定是否调度目标气象算法;
若是,则所述调度客户端基于目标气象算法ID、目标气象算法参数、目标气象算法执行命令和目标气象算法执行用户调度并启动运行目标气象算法;
若否,则所述调度客户端通过gRPC协议将目标气象算法调度失败信息发送至调度服务端。
2.如权利要求1所述的基于状态感知的任务调度方法,其特征在于,所述对各个数据源消息对应的数据源到报率进行统计和更新,包括:
针对每一个数据源消息,基于数据源消息中的四级编码和数据观测时间对与所述数据源消息对应的数据源到报率进行统计和更新,并将更新后的数据源到报率存储至Redis缓存中。
3.如权利要求1所述的基于状态感知的任务调度方法,其特征在于:所述资源状态信息还包括与各个可执行计算节点对应的第一资源状态信息,所述第一资源状态信息包括CPU使用量、内存使用量以及正在运行的算法数量。
4.如权利要求3所述的基于状态感知的任务调度方法,其特征在于,所述基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,包括:
基于所述第一资源状态信息和所述第二资源状态信息从可执行计算节点中筛选出目标计算节点;
基于所述目标计算节点和所述算法执行信息生成目标气象算法调度指令。
5.如权利要求1所述的基于状态感知的任务调度方法,其特征在于,所述方法还包括:
当所述调度服务端通过gRPC协议接收到目标气象算法调度失败信息后,进行调度异常告警提示,并将所述目标气象算法调度指令存储至Redis缓存中的阻塞队列。
6.一种基于状态感知的任务调度***,其特征在于,所述基于状态感知的任务调度***包括调度服务端,所述调度服务端用于:
对各个数据源消息对应的数据源到报率进行统计和更新;
当检测到与目标数据源消息对应的目标数据源到报率大于或等于与所述目标数据源消息对应的到报率阈值时,基于与所述目标数据源消息对应的算法执行信息和资源状态信息生成目标气象算法调度指令,以供调度客户端基于所述目标气象算法调度指令启动运行目标气象算法,所述算法执行信息包括目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及与目标气象算法对应的可执行计算节点,所述资源状态信息包括与所述目标气象算法对应的第二资源状态信息,所述第二资源状态信息包括运行所述目标气象算法所需的CPU和内存量;
其中,所述调度客户端具体用于:
对所述目标气象算法调度指令进行解析,得到目标气象算法ID、目标气象算法参数、目标气象算法执行命令、目标气象算法执行用户以及第二资源状态信息;
基于自身所剩的资源信息和所述第二资源状态信息确定是否调度目标气象算法;
若是,则基于目标气象算法ID、目标气象算法参数、目标气象算法执行命令和目标气象算法执行用户调度并启动运行目标气象算法;
若否,则通过gRPC协议将目标气象算法调度失败信息发送至调度服务端。
7.如权利要求6所述的基于状态感知的任务调度***,其特征在于,所述调度服务端具体用于:
针对每一个数据源消息,基于数据源消息中的四级编码和数据观测时间对与所述数据源消息对应的数据源到报率进行统计和更新,并将更新后的数据源到报率存储至Redis缓存中。
8.一种基于状态感知的任务调度设备,其特征在于,所述基于状态感知的任务调度设备包括处理器、存储器以及存储在所述存储器上并可被所述处理器执行的基于状态感知的任务调度程序,其中所述基于状态感知的任务调度程序被所述处理器执行时,实现如权利要求1至5中任一项所述的基于状态感知的任务调度方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于状态感知的任务调度程序,其中所述基于状态感知的任务调度程序被处理器执行时,实现如权利要求1至5中任一项所述的基于状态感知的任务调度方法的步骤。
CN202311310819.3A 2023-10-11 2023-10-11 基于状态感知的任务调度方法、***、设备及存储介质 Active CN117056058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311310819.3A CN117056058B (zh) 2023-10-11 2023-10-11 基于状态感知的任务调度方法、***、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311310819.3A CN117056058B (zh) 2023-10-11 2023-10-11 基于状态感知的任务调度方法、***、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117056058A CN117056058A (zh) 2023-11-14
CN117056058B true CN117056058B (zh) 2024-02-27

Family

ID=88669557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311310819.3A Active CN117056058B (zh) 2023-10-11 2023-10-11 基于状态感知的任务调度方法、***、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117056058B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815019A (zh) * 2019-02-03 2019-05-28 普信恒业科技发展(北京)有限公司 任务调度方法、装置、电子设备及可读存储介质
WO2020140683A1 (zh) * 2019-01-04 2020-07-09 深圳壹账通智能科技有限公司 任务调度方法、装置、计算机设备和存储介质
CN111767433A (zh) * 2020-06-23 2020-10-13 Oppo(重庆)智能科技有限公司 数据处理方法、装置、存储介质以及终端
CN113946636A (zh) * 2020-07-15 2022-01-18 华风爱科气象科技(北京)有限公司 气象数据处理方法及装置、可读存储介质
CN115525680A (zh) * 2022-09-21 2022-12-27 京信数据科技有限公司 数据处理作业调度方法、装置、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020140683A1 (zh) * 2019-01-04 2020-07-09 深圳壹账通智能科技有限公司 任务调度方法、装置、计算机设备和存储介质
CN109815019A (zh) * 2019-02-03 2019-05-28 普信恒业科技发展(北京)有限公司 任务调度方法、装置、电子设备及可读存储介质
CN111767433A (zh) * 2020-06-23 2020-10-13 Oppo(重庆)智能科技有限公司 数据处理方法、装置、存储介质以及终端
CN113946636A (zh) * 2020-07-15 2022-01-18 华风爱科气象科技(北京)有限公司 气象数据处理方法及装置、可读存储介质
CN115525680A (zh) * 2022-09-21 2022-12-27 京信数据科技有限公司 数据处理作业调度方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN117056058A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
US10303509B2 (en) Distributed task system based on internet of things and service processing method for distributed tasks based on the same
US8930521B2 (en) Method, apparatus, and computer program product for enabling monitoring of a resource
CN111625331B (zh) 任务调度方法、装置、平台、服务器及存储介质
EP2503733A1 (en) Data collecting method, data collecting apparatus and network management device
CN112882813A (zh) 任务调度方法、装置、***及电子设备
CN110581773A (zh) 一种自动化服务监控与报警管理***
CN112749221A (zh) 数据任务调度方法、装置、存储介质及调度工具
CN110231998B (zh) 分布式定时任务的检测方法、装置及存储介质
CN110322143B (zh) 模型实体化管理方法、装置、设备及计算机存储介质
CN112579304A (zh) 基于分布式平台的资源调度方法、装置、设备及介质
WO2021204013A1 (zh) 智能派工方法、装置、设备及存储介质
CN110611707A (zh) 一种任务调度的方法及装置
US20170078049A1 (en) Freshness-sensitive message delivery
CN115470025A (zh) 分布式云场景下智能根因分析方法及装置、介质、设备
CN114697192A (zh) 一种基于Skywalking的应用性能指标告警***
CN108199920A (zh) 监控云平台中的服务器的性能的方法和服务器
CN117056058B (zh) 基于状态感知的任务调度方法、***、设备及存储介质
CN113434323A (zh) 数据中台的任务流控制方法及相关装置
CN112788010A (zh) 一种基于威胁事件的剧本处理方法、装置、介质和设备
CN111082964B (zh) 一种配置信息的分发方法和装置
CN112565391A (zh) 调整工业互联网平台中实例的方法、装置、设备和介质
CN113760634A (zh) 一种数据处理方法和装置
CN112965793B (zh) 一种面向标识解析数据的数据仓库任务调度方法和***
CN111401819B (zh) ***间数据推送方法及***
CN111211938B (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