CN114780216B - 任务调度方法、装置、计算机设备和存储介质 - Google Patents
任务调度方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114780216B CN114780216B CN202210402340.1A CN202210402340A CN114780216B CN 114780216 B CN114780216 B CN 114780216B CN 202210402340 A CN202210402340 A CN 202210402340A CN 114780216 B CN114780216 B CN 114780216B
- Authority
- CN
- China
- Prior art keywords
- task
- executor
- execution
- type
- parameters
- 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
Links
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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
Abstract
本申请涉及一种任务调度方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取任务调度配置参数,任务调度配置参数包括任务类型,根据任务调度配置参数生成任务实例,在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,并根据任务执行器类型,确定任务实例的目标任务执行器,调用对应的目标任务执行器执行任务实例,得到任务执行返回数据;其中,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到,目标任务执行器包括命令行执行器或超文本传输协议执行器。采用本方法能够实现轻量级的任务执行。
Description
技术领域
本申请涉及任务调度技术领域,特别是涉及一种任务调度方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
任务调度服务器将任务分配给任务执行器去执行是提高任务执行效率的有效途径。目前,业界调度工具对任务执行器的设计和实现,普遍做法是采用jar包集成方式的方式,尽可能多的集成不同种类的任务执行器来实现不同类型任务的执行。具体的,采用一个任务执行器对应一种任务类型,不同的任务类型用不同的执行器来实现,如hive类型的任务,采用hive任务执行器来实现,FTP(File Transfer Protocol,文件传输协议)类型的任务,采用FTP任务执行器来实现,其实现方式是编写一套指定任务类型的客户端代码,包括对通讯指令的组合、通讯指令数据的解析和暴露参数配置接口。
然而,上述做法,每新出一个调度工具,均需重复编写实现相同功能的客户端代码程序。每实现一种对应任务类型的任务执行器,均需详细了解该任务执行器的服务模块的通讯指令,并针对不同的指令编写处理逻辑,复杂度过高。与此同时,通讯指令解析涉及到对服务端程序包的依赖,集成的任务执行器越多,依赖的程序包就越多,冲突的可能性越大,且升级运维的工作量越大。
因此,需要提供一种轻量级的便捷的任务调度方案。
发明内容
基于此,有必要针对上述技术问题,提供一种轻量级的任务调度方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种任务调度方法,应用于任务调度服务器,任务调度服务器部署有与不同任务类型对应的本地客户端,任务调度服务器设置有命令行执行器以及超文本传输协议执行器。方法包括:
获取任务调度配置参数,任务调度配置参数包括任务类型;
根据任务调度配置参数生成任务实例;
在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,并根据任务执行器类型,确定任务实例的目标任务执行器;
调用对应的目标任务执行器执行任务实例,得到任务执行返回数据;
其中,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到,目标任务执行器包括命令行执行器或超文本传输协议执行器,任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系。
在其中一个实施例中,目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句包括:
获取与任务类型对应的参数解析规则;
根据参数解析规则,解析任务调度配置参数,得到任务调用参数;
组装任务调用参数和任务执行参数,得到任务执行语句。
在其中一个实施例中,任务执行参数包括与任务类型对应的本地客户端提供的命令行,任务调用参数包括任务调用命令行参数,任务执行语句包括任务执行命令行;
若目标任务执行器为命令行任务执行器,目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句包括:
获取与任务类型对应的命令行参数解析规则;
根据命令行参数解析规则,解析任务调度配置参数,得到任务调用命令行参数;
组装任务调用命令行参数和命令行,得到任务执行命令行。
在其中一个实施例中,任务执行参数包括与任务类型对应的本地客户端提供的超文本传输协议接口地址,任务调用参数包括任务调用命令行参数,任务执行语句包括任务执行超文本传输协议请求参数;
若目标任务执行器为超文本传输协议任务执行器,目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句包括:
获取与任务类型对应的超文本传输协议参数解析规则;
根据超文本传输协议参数解析规则,解析任务调度配置参数,得到任务调用超文本传输协议参数;
组装任务调用超文本传输协议参数和超文本传输协议接口地址,得到任务执行超文本传输协议请求参数。
在其中一个实施例中,任务执行语句包括任务执行命令行和任务执行超文本传输协议请求参数,本地客户端包括本地命令行客户端和本地超文本传输协议客户端;
目标任务执行器调用与任务类型对应的本地客户端执行任务执行语句包括:
命令行任务执行器调用与任务类型对应的本地命令行客户端执行任务执行命令行;
或,超文本传输协议任务执行器调用与任务类型对应的本地超文本传输协议客户端执行任务执行超文本传输协议请求参数。
在其中一个实施例中,任务执行返回数据包括任务执行结果和任务执行输出数据;
按照任务类型,调用对应的目标任务执行器执行任务实例,得到任务执行返回数据之后,还包括:
根据任务执行结果和任务执行输出数据更新预设的任务调度信息表。
第二方面,本申请还提供了一种任务调度装置,应用于任务调度服务器,任务调度服务器部署有与不同任务类型对应的本地客户端,任务调度服务器设置有命令行执行器以及超文本传输协议执行器。装置包括:
数据获取模块,用于获取任务调度配置参数,任务调度配置参数包括任务类型;
任务实例生成模块,用于根据任务调度配置参数生成任务实例;
任务执行器确定模块,用于在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,根据任务执行器类型,确定任务实例的目标任务执行器;
任务执行模块,用于调用对应的目标任务执行器执行任务实例,得到任务执行返回数据;
其中,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到,目标任务执行器包括命令行执行器或超文本传输协议执行器,任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系。
第三方面,本申请还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取任务调度配置参数,任务调度配置参数包括任务类型;
根据任务调度配置参数生成任务实例;
在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,并根据任务执行器类型,确定任务实例的目标任务执行器;
调用对应的目标任务执行器执行任务实例,得到任务执行返回数据;
其中,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到,目标任务执行器包括命令行执行器或超文本传输协议执行器,任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系。
第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取任务调度配置参数,任务调度配置参数包括任务类型;
根据任务调度配置参数生成任务实例;
在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,并根据任务执行器类型,确定任务实例的目标任务执行器;
调用对应的目标任务执行器执行任务实例,得到任务执行返回数据;
其中,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到,目标任务执行器包括命令行执行器或超文本传输协议执行器,任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系。
第五方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取任务调度配置参数,任务调度配置参数包括任务类型;
根据任务调度配置参数生成任务实例;
在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,并根据任务执行器类型,确定任务实例的目标任务执行器;
调用对应的目标任务执行器执行任务实例,得到任务执行返回数据;
其中,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到,目标任务执行器包括命令行执行器或超文本传输协议执行器,任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系。
上述任务调度方法、装置、计算机设备、存储介质和计算机程序产品,获取任务调度配置参数,通过任务路由表匹配出与任务类型对应的任务执行器类型和任务执行参数,确定任务实例的目标任务执行器为命令行执行器或超文本传输协议执行器,进而调用命令行执行器或超文本传输协议执行器执行对应的任务实例,得到任务执行返回数据。上述方案,摒弃传统的一个任务执行器对应一种任务类型的集成设计思维,仅使用两个轻量级且通用的执行器命令行执行器或超文本传输协议执行器,通过预先在任务调度服务器安装好不同任务类型对应的本地客户端并构建任务路由表,使得不同类型的任务执行,无需再了解服务模块的通讯指令,也无需再编写通讯指令解析代码,只需调用与任务类型对应的本地客户端,使本地客户端与其服务端进行通讯完成任务的执行即可。故,采用上述方案,能够极大程度上减轻服务器对于任务执行器服务端的程序包的依赖,且任务执行更为简便,实现轻量级的任务调度。
附图说明
图1为一个实施例中任务调度方法的应用环境图;
图2为一个实施例中任务调度方法的流程示意图;
图3为一个实施例中得到任务执行语句步骤的流程示意图;
图4为一个实施例中任务调度装置的结构框图;
图5为另一个实施例中任务调度装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的任务调度方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与任务调度服务器104进行通信,该任务调度服务器104部署有与不同任务类型对应的本地客户端,且设置有命令行任务执行器和超文本传输协议任务执行器。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。用户在终端102操作界面进行操作,创建新任务,并配置任务调度参数,包括任务类型,然后通过终端102向任务调度服务器发送任务调度请求,任务调度服务器104响应该请求,获取任务调度配置参数,根据任务调度配置参数生成任务实例,然后,在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,并根据任务执行器类型,确定任务实例的目标任务执行器,调用对应的目标任务执行器执行任务实例,得到任务执行返回数据。其中,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到,目标任务执行器包括命令行执行器或超文本传输协议执行器,任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种任务调度方法,以该方法应用于图1中的任务调度服务器104为例进行说明,包括以下步骤:
步骤202,获取任务调度配置参数,任务调度配置参数包括任务类型。
任务调度配置参数即指用户在新建调度任务时配置的相关的参数,包括任务类型、用户名、密码、端口号以及HTTP(Hyper Text Transfer Protocol,超文本传输协议)的接口地址等。任务类型包括MySQL(Structured Query Language)类型、Hive类型、Hive2Server类型、Spark类型、Java程序类型、Sqoop类型、MapReduce类型、子工作流以及Shell类型等等。
步骤204,根据任务调度配置参数生成任务实例。
在任务执行层面,都是对具体任务即任务实例进行操作。可以根据任务实例的状态,对任务实例执行查看、挂起、继续、终止、重试、删除等操作。在获取任务调度配置参数后,便根据任务调度配置参数,获取相应的实例信息,然后生成相应的任务实例。
步骤206,在预构建的任务路由表中匹配出与所述任务类型对应的任务执行器类型和任务执行参数,并根据所述任务执行器类型,确定所述任务实例的目标任务执行器,任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系,目标任务执行器包括命令行执行器或超文本传输协议执行器。
任务路由表是预先构建的,包括任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系,可参见表1。具体的,任务执行参数包括各本地客户端提供的命令行或实际的HTTP接口地址。任务执行器类型包括命令行任务执行器(以下简称Cli任务执行器)和超文本传输协议任务执行器(以下简称HTTP任务执行器)。其中,命令行任务执行器和HTTP任务执行器均为轻量级,大小不足1M,依赖包一般不超过3个,且这两种执行器是通用执行器,凭借这两种执行器可以实现所有类型任务的执行、收集结果和输出。
表1任务路由表
任务类型 | 任务执行器类型 | 任务执行参数 |
MySQL | 命令行任务执行器 | Mysql(命令行) |
… | … | … |
Elasticsearch | HTTP任务执行器 | 192.168.2.XXX:XXXX(HTTP接口地址) |
具体的,通用执行器的实现依据在于大多数服务模块不仅提供了服务端的程序包,普遍还对外提供了客户端的程序包或功能,而这些客户端程序包内置了通讯指令和解析功能。我们可以安装客户端的程序包注册成本地服务,并以机器命令行cli(CommandLine,命令行)的方式供其他终端调用,或者服务端提供了http形式的接口供其他终端调用。
因此,本申请中,可以是在任务调度服务器上,针对每一种任务类型,均预先安装好与执行各类型任务的服务模块对应的本地客户端,例如,若任务类型为MySQL,而MySQL的服务模块支持命令行交互形式,则安装的本地客户端即为MySQL命令行客户端,对应的,调用使用命令行任务执行器(以下可简称为Cli任务执行器)执行任务实例;若任务类型为Hive,Hive的服务模块也支持命令行交互形式,则对应安装客户端为Hive命令行客户端。由于有些任务类型对应的服务模块不支持命令行交互,而是提供HTTP接口地址进行调用,例如Elasticsearch,因此,针对该类型任务,可以安装HttpComponents-Client即HTTP客户端与其服务模块进行交互,对应的,针对此类型的任务,则调用超文本传输协议任务执行器(以下简称为HTTP任务执行器)执行任务实例。对应的,在另一个实施例中,不同任务类型对应的客户端还可以是分布式的安装在多个服务器上,调度任务服务器还可以通过代理的方式,与安装有客户端的服务器进行通讯交互,以调度任务的执行。
在实际过程中,用户在配置调度任务时,选择了什么任务类型,即选择了对应的执行器类型来执行该任务。具体实施时,可以是根据任务类型在任务路由表中进行匹配,匹配出与任务类型对应的任务执行器类型,进而由匹配出的任务执行器类型确定最终的目标任务执行器。由于本实施例中只采用Cli任务执行器和HTTP任务执行器,因此,不管任务类型有多少种,最终确定各任务实例的目标任务执行器也只会是Cli任务执行器或HTTP任务执行器。
步骤208,调用对应的目标任务执行器执行任务实例,得到任务执行返回数据,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到。
当确定各任务实例的目标任务执行器后,便将各任务实例对应分配给相应的目标任务执行器,然后,调用对应的目标任务执行器执行任务实例,得到任务执行返回数据。具体实施时,目标任务执行器接收到相应的任务实例后,可以是根据任务调度配置参数和任务执行参数得到任务执行语句,然后,再调用与任务类型对应的本地客户端执行任务执行语句,以使本地客户端与其对应的服务模块(服务端)进行通讯交互,使服务端执行相应的任务,得到任务执行返回数据,然后,服务端再将任务执行返回数据发送给本地客户端,本地客户端再通过对应的目标任务执行器将任务执行返回数据反馈给调度任务服务器。
上述任务调度方法中,获取任务调度配置参数,通过任务路由表匹配出与任务类型对应的任务执行器类型和任务执行参数,确定任务实例的目标任务执行器为命令行执行器或超文本传输协议执行器,进而调用命令行执行器或超文本传输协议执行器执行对应的任务实例,得到任务执行返回数据。上述方案,摒弃传统的一个任务执行器对应一种任务类型的集成设计思维,仅使用两个轻量级且通用的执行器即命令行执行器或超文本传输协议执行器,通过预先在任务调度服务器安装好不同任务类型对应的本地客户端并构建任务路由表,使得不同类型的任务执行,无需再了解服务模块的通讯指令,也无需再编写通讯指令解析代码,只需调用与任务类型对应的本地客户端,使本地客户端与其服务端进行通讯完成任务的执行即可。故,采用上述方案,能够极大程度上减轻服务器对于任务执行器服务端的程序包的依赖,且任务执行更为简便,实现轻量级的任务调度。
如图3所示,在其中一个实施例中,目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句包括:
步骤220,获取与任务类型对应的参数解析规则。
步骤240,根据参数解析规则,解析任务调度配置参数,得到任务调用参数。
步骤260,组装任务调用参数和任务执行参数,得到任务执行语句。
参数解析规则即指任务类型对应的服务模块提供的官方参数解析规则。在软件行业,通常有两种做法获取服务模块提供的官方参数解析规则。一种方式是进入软件对应的官方网站,查找资料。另一种方式即在命令行输入man或help命令,会得到相应的文档资料,这些文档资料详细了说明了命令需要的参数,每个参数的具体含义,以及如何对参数进行组装等。以mysql命令行为例,可以查看MySQL的官网的DOCUMENTATION栏目,获取相应的参数解析规则。或者,按照官方资料的提示说明,安装好MySQL客户端后,在命令行里输入man或help命令,获取参数解析规则。获取参数解析规则之后,可以是根据参数解析规则,解析任务调度配置参数,得到任务调用参数,然后,组装任务调用参数和任务执行参数,得到任务执行语句。其中,任务调用参数包括任务调用命令行参数和任务调用HTTP参数,则相应的,任务执行语句包括任务执行命令行和任务执行HTTP请求参数。本实施例中,获取服务模块提供的官方的参数解析方式进行解析,无需内部了解参数解析规则,且出错率低。
在其中一个实施例中,任务执行参数包括与任务类型对应的本地客户端提供的命令行,任务调用参数包括任务调用命令行参数,任务执行语句包括任务执行命令行;
若目标任务执行器为命令行任务执行器,目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句包括:获取与任务类型对应的命令行参数解析规则,根据命令行参数解析规则,解析任务调度配置参数,得到任务调用命令行参数,组装任务调用命令行参数和命令行,得到任务执行命令行。
本实施例是针对目标任务执行器为Cli任务执行器时,其根据任务调度配置参数和任务执行参数得到任务执行语句的具体实现方式进行说明。如上述实施例所述,任务执行参数包括与任务类型对应的本地客户端提供的命令行,任务调用参数包括任务调用命令行参数,任务执行语句包括任务执行命令行。若目标任务执行器为命令行任务执行器,任务类型为MySQL,则组装得到的任务执行命令行可以是mysql–h100.1.1.5–P3307-Dtest–utest123-ptestpwd-e‘select 1 as aa’–s。具体的,可以是用户配置MySQL任务,任务调度配置参数包括${host}、${port}、${db}、${user}、${passowrd}、${sql}包括:host-100.1.1.5、port-3307、db-test、user-test123、passowrd-test123、sql语句查询内容为select 1 as aa,以静默方式执行。MySQL官方提供的cli命令行是mysql,参照MySQL官方提供的参数解析规则,得到任务调度参数为:–h100.1.1.5–P3307-Dtest–utest123-ptestpwd-e‘select 1 as aa’–s,然后组装命令行和任务调度参数,得到任务执行语句为:mysql–h100.1.1.5–P3307-Dtest–utest123-ptestpwd-e‘select 1 as aa’–s。该任务执行命令行的含义为在本地新执行一个命令,通过用户test、密码test123访问位于100.1.15的远程mysql服务器,并向该服务器发送查询指令,查询内容为select 1 as aa,以静默方式执行。服务器执行后,将结果返回给本地发起这个执行命令的用户,最终得到1这个结果。本实施例中,通过组装得到任务执行命令行,可以使得命令行执行器通过该任务执行命令行调用各命令行客户端,以执行任务,更为高效便捷。
在其中一个实施例中,任务执行参数包括与任务类型对应的本地客户端提供的超文本传输协议接口地址,任务调用参数包括任务调用命令行参数,任务执行语句包括任务执行超文本传输协议请求参数;
若目标任务执行器为超文本传输协议任务执行器,目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句包括:获取与任务类型对应的超文本传输协议参数解析规则,根据超文本传输协议参数解析规则,解析任务调度配置参数,得到任务调用超文本传输协议参数,组装任务调用超文本传输协议参数和超文本传输协议接口地址,得到任务执行超文本传输协议请求参数。
本实施例是针对目标任务执行器为HTTP任务执行器时,其根据任务调度配置参数和任务执行参数得到任务执行语句的具体实现方式进行说明。如上述实施例所述,任务执行参数包括与任务类型对应的本地客户端提供的HTTP接口地址,任务调用参数包括任务调用命令行参数,任务执行语句包括任务执行HTTP请求参数。同理,按照HTTP参数解析规则,解析用户配置的参数如Post请求体参数,得到任务调用HTTP参数,然后,组装任务调用HTTP参数和HTTP接口地址,得到任务执行Post请求体。本实施例中,通过组装得到任务执行Post请求体,可以使得命令行执行器通过HTTP对应的客户端调用该任务执行Post请求体,便可达到执行任务的目的,更为高效便捷。
在其中一个实施例中,任务执行语句包括任务执行命令行和任务执行超文本传输协议请求参数,本地客户端包括本地命令行客户端和本地超文本传输协议客户端;目标任务执行器调用与任务类型对应的本地客户端执行任务执行语句包括:命令行任务执行器调用与任务类型对应的本地命令行客户端执行任务执行命令行;或,超文本传输协议任务执行器调用与任务类型对应的本地超文本传输协议客户端执行任务执行超文本传输协议请求参数。
具体实施时,若目标任务执行器为Cli任务执行器,则命令行任务执行器调用与任务类型对应的本地命令行客户端执行任务执行命令行,具体的,可以是调用jdk(javadevelopment kit,Java程序开发工具包)的RunTime类执行任务执行命令行,以调用对应的本地命令行客户端与相应的服务端进行通讯,使得服务端执行任务。又或者,若目标任务执行器为HTTP任务执行器,则调用HttpComponents-Client的HttpClient类执行组装好的Post请求体,以使与任务类型对应的服务端执行任务。本实施例中,通过调用任务类型相应的本地客户端执行任务执行语句,使得任务的执行,无需了解相应的服务端的通讯指令和协议等,难度更小,且大大减少了运维升级的难度。
在其中一个实施例中,任务执行返回数据包括任务执行结果和任务执行输出数据;按照任务类型,调用对应的目标任务执行器执行任务实例,得到任务执行返回数据之后,还包括:根据任务执行结果和任务执行输出数据更新预设的任务调度信息表。
任务调度信息表本实施例中,任务执行结果也可以视为任务执行语句执行结果,可以是以整型0标识执行成功,非0标识执行失败,任务执行标准输出数据包括任务执行标准输出和任务执行错误输出。具体的,可以是Cli执行器任务执行器调用jdk的Process类获取任务执行结果、任务执行标准输出和任务执行错误输出,HTTP任务执行器调用HttpComponents-Client的HttpResponse类获取接口执行返回对象(封装有任务执行结果、任务执行标准输出和错误输出)。然后,根据任务执行结果和任务执行输出数据更新预设的任务调度信息表,包括更新任务调度信息表中的任务状态,如将任务状态更新为已执行、将执行完成的任务从表中删除等等。通过上述方式,能够保证任务调度表的及时更新,确保任务调度的有序进行。
为对本申请提供的任务调度方法进行更为清楚的说明,下面结合一个具体实施例进行说明,该实施例包括以下内容:
用户在终端配置任务调度参数,提交携带任务调度参数的任务调度请求至任务调度服务器,任务调度服务器响应该请求,获取任务调度配置参数,根据任务调度配置参数生成任务实例,然后,在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,并根据任务执行器类型,确定任务实例的目标任务执行器为Cli任务执行器或HTTP任务执行器,然后,将任务实例对应分配给Cli任务执行器或HTTP任务执行器,然后,调用对应的Cli任务执行器或HTTP任务执行器执行任务实例,以得到任务执行结果、任务执行标准输出和错误输出,进而根据任务执行结果、任务执行标准输出和错误输出更新预设的任务调度信息表中的任务状态或删除已成功执行的任务。
其中,Cli任务执行器接收到任务实例后,获取与任务类型对应的命令行参数解析规则,然后,根据命令行参数解析规则,解析任务调度配置参数,得到任务调用命令行参数,再组装任务调用命令行参数和命令行,得到任务执行命令行,如mysql–h100.1.1.5–P3307-Dtest–utest123-ptestpwd-e‘select 1 as aa’–s,然后,调用jdk的RunTime类执行任务执行命令行,以调用对应的本地命令行客户端与相应的服务端进行通讯,使得服务端执行任务,然后,Cli执行器任务执行器调用jdk的Process类获取任务执行结果、任务执行标准输出和任务执行错误输出,并将任务执行结果、任务执行标准输出和任务执行错误输出反馈给任务调度服务器。最后,退出调用本地安装的客户端命令,自动销毁资源。
HTTP任务执行器接收到任务实例后,获取HTTP参数解析规则,按照HTTP参数解析规则,解析用户配置的参数如Post请求体参数,得到任务调用HTTP参数,组装任务调用HTTP参数和HTTP接口地址,得到任务执行Post请求体。然后,调用HttpComponents-Client的HttpClient类执行组装好的Post请求体,发送HTTP请求至相应的服务端,以执行任务。调用HttpComponents-Client的HttpResponse类获取接口执行返回对象,包括任务执行结果、任务执行标准输出和错误输出),并将任务执行结果、任务执行标准输出和任务执行错误输出反馈给任务调度服务器。最后,调用HttpComponents-Client的HttpClient类销毁HTTP请求资源,即关闭HTTP连接,销毁资源。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的任务调度方法的任务调度装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个任务调度装置实施例中的具体限定可以参见上文中对于任务调度方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种任务调度装置,应用于任务调度服务器,任务调度服务器部署有与不同任务类型对应的本地客户端,任务调度服务器设置有命令行执行器以及超文本传输协议执行器。装置包括:数据获取模块510、任务实例生成模块520、任务执行器确定模块530和任务执行模块540,其中:
数据获取模块510,用于获取任务调度配置参数,任务调度配置参数包括任务类型。
任务实例生成模块520,用于根据任务调度配置参数生成任务实例。
任务执行器确定模块530,用于在预构建的任务路由表中匹配出与任务类型对应的任务执行器类型和任务执行参数,根据任务执行器类型,确定任务实例的目标任务执行器。
任务执行模块540,用于调用对应的目标任务执行器执行任务实例,得到任务执行返回数据。
其中,任务执行返回数据由目标任务执行器根据任务调度配置参数和任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行任务执行语句得到,目标任务执行器包括命令行执行器或超文本传输协议执行器,任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系。
上述任务调度装置,获取任务调度配置参数,通过任务路由表匹配出与任务类型对应的任务执行器类型和任务执行参数,确定任务实例的目标任务执行器为命令行执行器或超文本传输协议执行器,进而调用命令行执行器或超文本传输协议执行器执行对应的任务实例,得到任务执行返回数据。上述装置,摒弃传统的一个任务执行器对应一种任务类型的集成设计思维,仅使用两个轻量级且通用的执行器命令行执行器或超文本传输协议执行器,通过预先在任务调度服务器安装好不同任务类型对应的本地客户端并构建任务路由表,使得不同类型的任务执行,无需再了解服务模块的通讯指令,也无需再编写通讯指令解析代码,只需调用与任务类型对应的本地客户端,使本地客户端与其服务端进行通讯完成任务的执行即可。故,采用上述装置,能够极大程度上减轻服务器对于任务执行器服务端的程序包的依赖,且任务执行更为简便,实现轻量级的任务调度。
在其中一个实施例中,任务执行模块540还用于调用目标任务执行器获取与任务类型对应的参数解析规则,根据参数解析规则,解析任务调度配置参数,得到任务调用参数,组装任务调用参数和任务执行参数,得到任务执行语句。
在其中一个实施例中,任务执行模块540还用于调用命令行任务执行器获取与任务类型对应的命令行参数解析规则,根据命令行参数解析规则,解析任务调度配置参数,得到任务调用命令行参数,组装任务调用命令行参数和命令行,得到任务执行命令行。
在其中一个实施例中,任务执行模块540还用于调用超文本传输协议任务执行器获取与任务类型对应的超文本传输协议参数解析规则,根据超文本传输协议参数解析规则,解析任务调度配置参数,得到任务调用超文本传输协议参数,组装任务调用超文本传输协议参数和超文本传输协议接口地址,得到任务执行超文本传输协议请求参数。
在其中一个实施例中,任务执行模块540还用于调用命令行任务执行器去调用与任务类型对应的本地命令行客户端执行任务执行命令行;或,调用超文本传输协议任务执行器去调用与任务类型对应的本地超文本传输协议客户端执行任务执行超文本传输协议请求参数。
如图5所示,在其中一个实施例中,装置还包括数据更新模块550,用于根据任务执行结果和任务执行输出数据更新预设的任务调度信息表。
上述任务调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储任务路由表和任务调度配置数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种任务调度方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任务调度方法中的步骤。
在其中一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任务调度方法中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任务调度方法中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种任务调度方法,其特征在于,应用于任务调度服务器,所述任务调度服务器部署有与不同任务类型对应的本地客户端,所述任务调度服务器设置有命令行执行器以及超文本传输协议执行器;
所述方法包括:
获取任务调度配置参数,所述任务调度配置参数包括任务类型;
根据所述任务调度配置参数生成任务实例;
在预构建的任务路由表中匹配出与所述任务类型对应的任务执行器类型和任务执行参数,并根据所述任务执行器类型,确定所述任务实例的目标任务执行器;
调用对应的目标任务执行器执行所述任务实例,得到任务执行返回数据;
其中,所述任务执行返回数据由所述目标任务执行器根据所述任务调度配置参数和所述任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行所述任务执行语句得到,所述目标任务执行器包括命令行执行器或超文本传输协议执行器,所述任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系,所述任务执行参数包括与所述任务类型对应的本地客户端提供的命令行或超文本传输协议接口地址。
2.根据权利要求1所述的任务调度方法,其特征在于,所述目标任务执行器根据所述任务调度配置参数和所述任务执行参数得到任务执行语句包括:
获取与所述任务类型对应的参数解析规则;
根据所述参数解析规则,解析所述任务调度配置参数,得到任务调用参数;
组装所述任务调用参数和所述任务执行参数,得到任务执行语句。
3.根据权利要求1所述的任务执行方法,其特征在于,所述任务执行参数包括与所述任务类型对应的本地客户端提供的命令行,任务调用参数包括任务调用命令行参数,所述任务执行语句包括任务执行命令行;
若所述目标任务执行器为命令行任务执行器,所述目标任务执行器根据所述任务调度配置参数和所述任务执行参数得到任务执行语句包括:
获取与所述任务类型对应的命令行参数解析规则;
根据所述命令行参数解析规则,解析所述任务调度配置参数,得到任务调用命令行参数;
组装所述任务调用命令行参数和所述命令行,得到任务执行命令行。
4.根据权利要求1所述的任务调度方法,其特征在于,所述任务执行参数包括与所述任务类型对应的本地客户端提供的超文本传输协议接口地址,任务调用参数包括任务调用命令行参数,所述任务执行语句包括任务执行超文本传输协议请求参数;
若所述目标任务执行器为所述超文本传输协议任务执行器,所述目标任务执行器根据所述任务调度配置参数和所述任务执行参数得到任务执行语句包括:
获取与所述任务类型对应的超文本传输协议参数解析规则;
根据所述超文本传输协议参数解析规则,解析所述任务调度配置参数,得到任务调用超文本传输协议参数;
组装所述任务调用超文本传输协议参数和所述超文本传输协议接口地址,得到所述任务执行超文本传输协议请求参数。
5.根据权利要求1至4任意一项所述的任务调度方法,其特征在于,所述任务执行语句包括任务执行命令行和任务执行超文本传输协议请求参数,所述本地客户端包括本地命令行客户端和本地超文本传输协议客户端;
所述目标任务执行器调用与任务类型对应的本地客户端执行所述任务执行语句包括:
所述命令行任务执行器调用与任务类型对应的本地命令行客户端执行所述任务执行命令行;
或,所述超文本传输协议任务执行器调用与任务类型对应的本地超文本传输协议客户端执行所述任务执行超文本传输协议请求参数。
6.根据权利要求1至4任意一项所述的任务调度方法,其特征在于,所述任务执行返回数据包括任务执行结果和任务执行输出数据;
按照所述任务类型,调用对应的目标任务执行器执行所述任务实例,得到任务执行返回数据之后,还包括:
根据所述任务执行结果和任务执行输出数据更新预设的任务调度信息表。
7.一种任务调度装置,其特征在于,应用于任务调度服务器,所述任务调度服务器部署有与不同任务类型对应的本地客户端,所述任务调度服务器设置有命令行执行器以及超文本传输协议执行器;
所述任务调度装置包括:
数据获取模块,用于获取任务调度配置参数,所述任务调度配置参数包括任务类型;
任务实例生成模块,用于根据所述任务调度配置参数生成任务实例;
任务执行器确定模块,用于在预构建的任务路由表中匹配出与所述任务类型对应的任务执行器类型和任务执行参数,根据所述任务执行器类型,确定所述任务实例的目标任务执行器;
任务执行模块,用于调用对应的目标任务执行器执行所述任务实例,得到任务执行返回数据;
其中,所述任务执行返回数据由所述目标任务执行器根据所述任务调度配置参数和所述任务执行参数得到任务执行语句,调用与任务类型对应的本地客户端执行所述任务执行语句得到,所述目标任务执行器包括命令行执行器或超文本传输协议执行器,所述任务路由表携带有任务类型与任务执行器类型的映射关系以及任务类型与任务执行参数的映射关系,所述任务执行参数包括与所述任务类型对应的本地客户端提供的命令行或超文本传输协议接口地址。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210402340.1A CN114780216B (zh) | 2022-04-18 | 2022-04-18 | 任务调度方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210402340.1A CN114780216B (zh) | 2022-04-18 | 2022-04-18 | 任务调度方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114780216A CN114780216A (zh) | 2022-07-22 |
CN114780216B true CN114780216B (zh) | 2023-06-16 |
Family
ID=82430030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210402340.1A Active CN114780216B (zh) | 2022-04-18 | 2022-04-18 | 任务调度方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780216B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656157A (zh) * | 2021-08-10 | 2021-11-16 | 北京锐安科技有限公司 | 一种分布式任务调度方法、装置、存储介质及电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657591B2 (en) * | 2007-02-23 | 2010-02-02 | Microsoft Corporation | Dispatching client requests to appropriate server-side methods |
US10783016B2 (en) * | 2016-11-28 | 2020-09-22 | Amazon Technologies, Inc. | Remote invocation of code execution in a localized device coordinator |
CN108804241B (zh) * | 2018-05-21 | 2023-06-02 | 平安科技(深圳)有限公司 | 跨平台任务调度方法、系统、计算机设备和存储介质 |
CN109743390B (zh) * | 2019-01-04 | 2022-02-22 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN112532564B (zh) * | 2019-09-17 | 2022-09-13 | 中国移动通信集团广东有限公司 | 业务调用方法、装置及电子设备 |
CN111984385A (zh) * | 2020-08-25 | 2020-11-24 | 广联达科技股份有限公司 | 基于装饰bim模型的任务调度方法和任务调度装置 |
CN111930489B (zh) * | 2020-09-15 | 2022-06-14 | 南京领行科技股份有限公司 | 一种任务调度方法、装置、设备及存储介质 |
CN113778650A (zh) * | 2021-09-14 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 任务调度方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-18 CN CN202210402340.1A patent/CN114780216B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656157A (zh) * | 2021-08-10 | 2021-11-16 | 北京锐安科技有限公司 | 一种分布式任务调度方法、装置、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
Optimal task scheduling for partially heterogeneous systems;Michael Orr等;Parallel Computing;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114780216A (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886429B2 (en) | Persistent metadata catalog | |
US11521137B2 (en) | Deployment of self-contained decision logic | |
CN108228166B (zh) | 一种基于模板的后端代码生成方法及系统 | |
US10075549B2 (en) | Optimizer module in high load client/server systems | |
US20200285508A1 (en) | Method and Apparatus for Assigning Computing Task | |
US8856365B2 (en) | Computer-implemented method, computer system and computer readable medium | |
CN108287894B (zh) | 数据处理方法、装置、计算设备及存储介质 | |
CN112307122B (zh) | 一种基于数据湖的数据管理系统及方法 | |
US11321090B2 (en) | Serializing and/or deserializing programs with serializable state | |
US20190042631A1 (en) | Data Export Job Engine | |
JP2012515972A (ja) | ウェブに基づくダイアグラム視覚性の拡張性 | |
US20230409543A1 (en) | Dynamic multi-platform model generation and deployment system | |
US20220374742A1 (en) | Method, device and storage medium for running inference service platform | |
US8984514B2 (en) | Modifying scheduled execution of object modification methods associated with database objects | |
US11347630B1 (en) | Method and system for an automated testing framework in design pattern and validating messages | |
US11080291B2 (en) | Downloading visualization data between computer systems | |
CN114780216B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
US11748068B2 (en) | Building base applications with user interface micro frontends | |
CN116208676A (zh) | 数据回源方法、装置、计算机设备、存储介质和程序产品 | |
CN115756520A (zh) | 一种分布式集群中的FlinkSQL部署方法及装置 | |
CN108062224A (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
US9805177B1 (en) | Processing large data sets from heterogeneous data sources using federated computing resources | |
US20220172111A1 (en) | Data preparation for use with machine learning | |
US9235382B2 (en) | Input filters and filter-driven input processing | |
US9946737B2 (en) | System and method for simplifying data access between tiers in a multi-tier system |
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 |