CN113010284A - 微服务模块的调度方法及装置、存储介质、电子装置 - Google Patents
微服务模块的调度方法及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN113010284A CN113010284A CN202110242111.3A CN202110242111A CN113010284A CN 113010284 A CN113010284 A CN 113010284A CN 202110242111 A CN202110242111 A CN 202110242111A CN 113010284 A CN113010284 A CN 113010284A
- Authority
- CN
- China
- Prior art keywords
- middleware
- document
- micro
- module
- scheduling
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000001960 triggered effect Effects 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000010453 quartz Substances 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/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
-
- 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)
- Stored Programmes (AREA)
Abstract
本发明提供了一种微服务模块的调度方法及装置、存储介质、电子装置,其中,该方法包括:获取应用程序的目标微服务模块触发的注册请求,其中,所述应用程序通过微服务架构分布式部署多个微服务模块;以所述注册请求为触发条件,调取中间件文档,其中,所述中间件文档为通过Jar包封装的调度工具;调用所述中间件文档在所述目标微服务模块上调度定时任务。通过本发明,解决了相关技术调度定时任务的效率低的技术问题,同时降低了微服务模块的代码冗余度。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种微服务模块的调度方法及装置、存储介质、电子装置。
背景技术
相关技术中,随着信息化建设的不断发展,政府和企业的信息化应用系统架构逐步由传统的单体架构向微服务架构转变,为了降低信息系统之间的耦合度、提升信息系统的性能而采用的异步处理机制、实现跨系统之间的信息交互等关键场景均通过定时任务,由定时任务在后台自动完成相关业务逻辑处理。而业界现有的定时调度器主要面向传统的单体架构,无法完全满足于微服务架构。
相关技术中,微服务架构的调度停留在整个应用程序的粒度,只能通过控制器为各个微服务模块集中分配定时任务,至于单个微服务模块内的调度则不关心,每个微服务模块需要集成各自的调度代码才能管理定时任务,而微服务模块是单独开发的,模块间并不统一开发和维护,导致定时任务在微服务模块上的调度混乱,调度效率低。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种微服务模块的调度方法及装置、存储介质、电子装置。
根据本发明的一个实施例,提供了一种微服务模块的调度方法,包括:获取应用程序的目标微服务模块触发的注册请求,其中,所述应用程序通过微服务架构分布式部署多个微服务模块;以所述注册请求为触发条件,调取中间件文档,其中,所述中间件文档为通过Jar包封装的调度工具;调用所述中间件文档在所述目标微服务模块上调度定时任务。
可选的,以所述注册请求为触发条件,调取中间件文档包括:若所述目标微服务模块触发注册请求,判断所述目标微服务模块本地是否存在所述中间件文档;若所述微服务模块本地不存在所述中间件文档,从预设仓库地址下载所述中间件文档至所述目标微服务模块本地,并启动所述中间件文档;若所述目标微服务模块本地存在所述中间件文档,启动所述中间件文档。
可选的,在调取中间件文档之后,所述方法还包括:从预设仓库地址读取所述调度工具的最新版本信息;判断中间件文档的当前版本信息与所述最新版本信息是否一致;若中间件文档的当前版本信息与所述最新版本信息不一致,从所述预设仓库地址下载最新版本的中间件文档,并在所述目标微服务模块本地更新历史版本的中间件文档。
可选的,调用所述中间件文档在所述目标微服务模块上调度定时任务包括:调用所述中间件文档在所述目标微服务模块上注册多个定时任务;设置所述多个定时任务的优先级顺序;调用所述中间件文档内的定时调度脚本对所述多个定时任务按照所述优先级顺序进行排队执行。
可选的,在调用所述中间件文档在所述目标微服务模块上调度定时任务之后,所述方法还包括:生成所述定时任务的调度注册数据和调度日志数据,其中,所述调度日志数据用于表征所述定时任务的实时调度状态;将所述调度注册数据和所述调度日志数据转换为指定结构的表数据;将所述表数据插入所述目标微服务模块的数据库,其中,所述应用程序的所述多个微服务模块的数据库的表结构相同。
可选的,在调用所述中间件文档在所述目标微服务模块上调度定时任务之后,所述方法还包括:接收所述应用程序的前端界面下发的任务查询指令,其中,所述任务查询指令携带所述目标微服务模块的模块标识;在预设配置表中查询与所述模块标识匹配的统一资源定位器URL地址;采用所述URL地址经过所述应用程序的微服务网关连接所述前端界面和所述目标微服务模块,并调取所述目标微服务模块本地的中间件文档查询与所述定时任务相关的调度注册数据和调度日志数据;将所述调度注册数据和所述调度日志数据经由所述目标微服务网关上传至所述前端界面。
可选的,调用所述中间件文档在所述目标微服务模块上调度定时任务包括:判断所述定时任务是否存在协作微服务模块,其中,所述协作微服务模块部署在所述应用程序上;若所述定时任务存在所述协作微服务模块,控制所述目标微服务模块的Feign工具调用所述协作微服务模块;分别采用所述中间件文档和所述Feign工具在所述目标微服务模块和所述协作微服务模块上协同执行所述定时任务。
根据本发明的另一个实施例,提供了一种微服务模块的调度装置,包括:获取模块,用于获取应用程序的目标微服务模块触发的注册请求,其中,所述应用程序通过微服务架构分布式部署多个微服务模块;调取模块,用于以所述注册请求为触发条件,调取中间件文档,其中,所述中间件文档为通过Jar包封装的调度工具;调度模块,用于调用所述中间件文档在所述目标微服务模块上调度定时任务。
可选的,所述调取模块包括:判断单元,用于若所述目标微服务模块触发注册请求,判断所述目标微服务模块本地是否存在所述中间件文档;处理单元,用于若所述微服务模块本地不存在所述中间件文档,从预设仓库地址下载所述中间件文档至所述目标微服务模块本地,并启动所述中间件文档;若所述目标微服务模块本地存在所述中间件文档,启动所述中间件文档。
可选的,所述装置还包括:读取模块,用于在所述调取模块调取中间件文档之后,从预设仓库地址读取所述调度工具的最新版本信息;判断模块,用于判断中间件文档的当前版本信息与所述最新版本信息是否一致;更新模块,用于若中间件文档的当前版本信息与所述最新版本信息不一致,从所述预设仓库地址下载最新版本的中间件文档,并在所述目标微服务模块本地更新历史版本的中间件文档。
可选的,所述调度模块包括:注册单元,用于调用所述中间件文档在所述目标微服务模块上注册多个定时任务;设置单元,用于设置所述多个定时任务的优先级顺序;第一执行单元,用于调用所述中间件文档内的定时调度脚本对所述多个定时任务按照所述优先级顺序进行排队执行。
可选的,所述装置还包括:生成模块,用于在所述调度模块调用所述中间件文档在所述目标微服务模块上调度定时任务之后,生成所述定时任务的调度注册数据和调度日志数据,其中,所述调度日志数据用于表征所述定时任务的实时调度状态;转换模块,用于将所述调度注册数据和所述调度日志数据转换为指定结构的表数据;插入模块,用于将所述表数据插入所述目标微服务模块的数据库,其中,所述应用程序的所述多个微服务模块的数据库的表结构相同。
可选的,所述装置还包括:接收模块,用于在所述调度模块调用所述中间件文档在所述目标微服务模块上调度定时任务之后,接收所述应用程序的前端界面下发的任务查询指令,其中,所述任务查询指令携带所述目标微服务模块的模块标识;第一查询模块,用于在预设配置表中查询与所述模块标识匹配的统一资源定位器URL地址;第二查询模块,用于采用所述URL地址经过所述应用程序的微服务网关连接所述前端界面和所述目标微服务模块,并调取所述目标微服务模块本地的中间件文档查询与所述定时任务相关的调度注册数据和调度日志数据;上传模块,用于将所述调度注册数据和所述调度日志数据经由所述目标微服务网关上传至所述前端界面。
可选的,所述调度模块包括:判断单元,用于判断所述定时任务是否存在协作微服务模块,其中,所述协作微服务模块部署在所述应用程序上;控制单元,用于若所述定时任务存在所述协作微服务模块,控制所述目标微服务模块的Feign工具调用所述协作微服务模块;第二执行单元,用于分别采用所述中间件文档和所述Feign工具在所述目标微服务模块和所述协作微服务模块上协同执行所述定时任务。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,获取应用程序的目标微服务模块触发的注册请求,以注册请求为触发条件,调取中间件文档,中间件文档为通过Jar包封装的调度工具,最后调用中间件文档在目标微服务模块上调度定时任务,提供了一种快速集成的调度工具,开发人员使用本实施例的调度工具时,仅通过Jar包引入便可实现模块日志工具,调度工具达到一种可分可合的状态,由于各个微服务模块都引入了调度工具Jar包,可在本模块内注册调度,执行调度时可使用本模块的Jar包,达到一种分的状态,由于各个模块引入的调度工具Jar包一样,所以只需要对Jar包进行统一的维护和升级即可,并且微服务前端是统一的注册、日志功能,对应到的后端统一的Jar包代码,达到一种合的状态,解决了相关技术调度定时任务的效率低的技术问题,同时降低了微服务模块的代码冗余度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种服务器的硬件结构框图;
图2是根据本发明实施例的一种微服务模块的调度方法的流程图;
图3是本实施例中微服务架构的示意图;
图4是根据本发明实施例的一种微服务模块的调度装置的结构框图;
图5是本发明实施例的一种电子装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本申请实施例一所提供的方法实施例可以在服务器、计算机、或者类似的运算装置中执行。以运行在服务器上为例,图1是本发明实施例的一种服务器的硬件结构框图。如图1所示,服务器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储服务器程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种微服务模块的调度方法对应的服务器程序,处理器102通过运行存储在存储器104内的服务器程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种微服务模块的调度方法,图2是根据本发明实施例的一种微服务模块的调度方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取应用程序的目标微服务模块触发的注册请求,其中,应用程序通过微服务架构分布式部署多个微服务模块;
在本实施例中,注册请求用于在目标微服务模块上配置定时任务,图3是本实施例中微服务架构的示意图,应用程序包括四个微服务模块,分别部署在不同的服务器上,相对于单体应用,微服务模块可以单独同工作,独立实现业务。
步骤S204,以注册请求为触发条件,调取中间件文档,其中,中间件文档为通过Jar包封装的调度工具;
本实施例中,利用JAVA可引入Jar包的模式,将日志工具配置成一个单独的Jar包供各个微服务模块引用,jar包是已经写好的一些类,然后将这些类进行打包,可以随时将这些jar包引入到分布式部署各个微服务模块中,然后就可以直接使用这些jar包中的类和属性以及方法,协助微服务模块执行日志数据的查询和处理业务。中间件文档可以适用应用程序的所有微服务模块。
步骤S206,调用中间件文档在目标微服务模块上调度定时任务;
通过上述步骤,获取应用程序的目标微服务模块触发的注册请求,以注册请求为触发条件,调取中间件文档,中间件文档为通过Jar包封装的调度工具,最后调用中间件文档在目标微服务模块上调度定时任务,提供了一种快速集成的调度工具,开发人员使用本实施例的调度工具时,仅通过Jar包引入便可实现模块日志工具,调度工具达到一种可分可合的状态,由于各个微服务模块都引入了调度工具Jar包,可在本模块内注册调度,执行调度时可使用本模块的Jar包,达到一种分的状态,由于各个模块引入的调度工具Jar包一样,所以只需要对Jar包进行统一的维护和升级即可,并且微服务前端是统一的注册、日志功能,对应到的后端统一的Jar包代码,达到一种合的状态,解决了相关技术调度定时任务的效率低的技术问题,同时降低了微服务模块的代码冗余度。
在本实施例的一个实施方式中,以注册请求为触发条件,调取中间件文档包括:若目标微服务模块触发注册请求,判断目标微服务模块本地是否存在中间件文档;若微服务模块本地不存在中间件文档,从预设仓库地址下载中间件文档至目标微服务模块本地,并启动中间件文档;若目标微服务模块本地存在中间件文档,启动中间件文档。
可选的,目标微服务模块在初始化阶段,向预设仓库地址发送下载请求,将中间件文档预先下载至目标微服务模块本地,或者是中间件文档在预设仓库地址上线后,向预配置的应用程序的多个微服务模块发送提示信息,微服务模块收到提示消息后,选择将中间件文档下载至目标微服务模块本地。其中,预设仓库地址是第三方数据仓库的连接地址。
在本实施例的一个实施方式中,在调取中间件文档之后,还包括:从预设仓库地址读取调度工具的最新版本信息;判断中间件文档的当前版本信息与最新版本信息是否一致;若中间件文档的当前版本信息与最新版本信息不一致,从预设仓库地址下载最新版本的中间件文档,并在目标微服务模块本地更新历史版本的中间件文档。
在另一些示例中,目标微服务模块在首次下载中间件文档之后,按照周期从预设仓库地址读取日志工具的最新版本信息,并周期性更新。
在本实施例的一个实施方式中,调用中间件文档在目标微服务模块上调度定时任务包括:调用中间件文档在目标微服务模块上注册多个定时任务;设置多个定时任务的优先级顺序;调用中间件文档内的定时调度脚本对多个定时任务按照优先级顺序进行排队执行。
可选的,该定时调度脚本为org.quartz.Job,为Jar包中的一个子文档。
在一个示例中,调用中间件文档在目标微服务模块上注册3个定时任务,分别是定时任务1,定时任务2,定时任务3,然后设置3个定时任务的调度优先级,如时间顺序,占用微服务模块的优先级等,然后在定时时间到达后,按照调度优先级将3个定时任务加入任务队列,将任务队列发送至CPU,CPU从任务队列按序取出定时任务的定时参数,并依次执行,从而解决了微服务模块上调度优先级的问题,在微服务模块上实现了更精细准确的定时任务。
在本实施例的一个实施方式中,在调用中间件文档在目标微服务模块上调度定时任务之后,还包括:生成定时任务的调度注册数据和调度日志数据,其中,调度日志数据用于表征定时任务的实时调度状态;将调度注册数据和调度日志数据转换为指定结构的表数据;将表数据插入目标微服务模块的数据库,其中,应用程序的多个微服务模块的数据库的表结构相同。
在本实施例中,微服务模块的调度相关信息对应存储在各个微服务模块的数据库,因此各个微服务模块的数据库创建的数据表的表结构相同。
调度工具的Jar包提供统一的调度实现类和方法,中间件文档包括三个子文档,调度注册文档,调度控制文档,调度日志文档,分别实现调度注册功能(用于注册定时任务)、调度控制功能(对已注册的定时任务进行控制,如控制器立即执行,删除定时任务,调整定时任务的优先级等)、调度日志功能,调度注册数据和调度日志数据存储在微服务各自的数据库。调度注册的时候,可以设置调度优先级,然后利用org.quartz.Job自带的优先级调度顺序,进行排队执行,并且在调度日志中显示目前调度的排队状态,状态有等待中、执行中、执行成功、执行失败等。
在本实施例的一个实施方式中,在调用中间件文档在目标微服务模块上调度定时任务之后,还包括:接收应用程序的前端界面下发的任务查询指令,其中,任务查询指令携带目标微服务模块的模块标识;在预设配置表中查询与模块标识匹配的统一资源定位器(Uniform Resource locator,URL)地址;采用URL地址经过应用程序的微服务网关连接前端界面和目标微服务模块,并调取目标微服务模块本地的中间件文档查询与定时任务相关的调度注册数据和调度日志数据;将调度注册数据和调度日志数据经由目标微服务网关上传至前端界面。
在实施例中,应用程序的多个微服务模块统一的前端界面,查询调度注册数据和调度日志数据的时候,通过一个模块标识的参数,调用不同的URL,URL经过微服务网关路由到不同的微服务模块,然后通过调度工具的Jar包将数据查询并返回到前端。
在本实施例的一个实施方式中,调用中间件文档在目标微服务模块上调度定时任务包括:判断定时任务是否存在协作微服务模块,其中,协作微服务模块部署在应用程序上;若定时任务存在协作微服务模块,控制目标微服务模块的Feign工具调用协作微服务模块;分别采用中间件文档和Feign工具在目标微服务模块和协作微服务模块上协同执行定时任务。
在实施方式中,需要跨微服务模块协作时,在微服务模块中使用微服务的Feign调用其他微服务模块。从而解决了各个微服务模块之间的协同合作。
采用本实施例的方案,调度工具的Jar包提供了统一的调度注册和调度日志功能,微服务模块仅需引入调度工具的Jar包,便可快速实现调度工具。为微服务程序开发提供了快速集成的调度工具,开发人员使用本发明的调度工具,仅通过Jar包引入便可实现微服务模块调度工具。调度工具达到一种可分可合的状态,由于各个模块都引入了调度工具Jar包,可在本模块内注册调度,执行调度时可使用本模块的代码,达到一种分的状态。由于各个模块引入的调度工具Jar包一样,所以只需要对Jar包进行统一的维护和升级即可,并且微服务前端是统一的注册、日志功能,对应到的后端统一的Jar包代码,达到一种合的状态。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种微服务模块的调度装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的一种微服务模块的调度装置的结构框图,如图4所示,该装置包括:获取模块40,调取模块42,调度模块44,其中,
获取模块40,用于获取应用程序的目标微服务模块触发的注册请求,其中,所述应用程序通过微服务架构分布式部署多个微服务模块;
调取模块42,用于以所述注册请求为触发条件,调取中间件文档,其中,所述中间件文档为通过Jar包封装的调度工具;
调度模块44,用于调用所述中间件文档在所述目标微服务模块上调度定时任务。
可选的,所述调取模块包括:判断单元,用于若所述目标微服务模块触发注册请求,判断所述目标微服务模块本地是否存在所述中间件文档;处理单元,用于若所述微服务模块本地不存在所述中间件文档,从预设仓库地址下载所述中间件文档至所述目标微服务模块本地,并启动所述中间件文档;若所述目标微服务模块本地存在所述中间件文档,启动所述中间件文档。
可选的,所述装置还包括:读取模块,用于在所述调取模块调取中间件文档之后,从预设仓库地址读取所述调度工具的最新版本信息;判断模块,用于判断中间件文档的当前版本信息与所述最新版本信息是否一致;更新模块,用于若中间件文档的当前版本信息与所述最新版本信息不一致,从所述预设仓库地址下载最新版本的中间件文档,并在所述目标微服务模块本地更新历史版本的中间件文档。
可选的,所述调度模块包括:注册单元,用于调用所述中间件文档在所述目标微服务模块上注册多个定时任务;设置单元,用于设置所述多个定时任务的优先级顺序;第一执行单元,用于调用所述中间件文档内的定时调度脚本对所述多个定时任务按照所述优先级顺序进行排队执行。
可选的,所述装置还包括:生成模块,用于在所述调度模块调用所述中间件文档在所述目标微服务模块上调度定时任务之后,生成所述定时任务的调度注册数据和调度日志数据,其中,所述调度日志数据用于表征所述定时任务的实时调度状态;转换模块,用于将所述调度注册数据和所述调度日志数据转换为指定结构的表数据;插入模块,用于将所述表数据插入所述目标微服务模块的数据库,其中,所述应用程序的所述多个微服务模块的数据库的表结构相同。
可选的,所述装置还包括:接收模块,用于在所述调度模块调用所述中间件文档在所述目标微服务模块上调度定时任务之后,接收所述应用程序的前端界面下发的任务查询指令,其中,所述任务查询指令携带所述目标微服务模块的模块标识;第一查询模块,用于在预设配置表中查询与所述模块标识匹配的统一资源定位器URL地址;第二查询模块,用于采用所述URL地址经过所述应用程序的微服务网关连接所述前端界面和所述目标微服务模块,并调取所述目标微服务模块本地的中间件文档查询与所述定时任务相关的调度注册数据和调度日志数据;上传模块,用于将所述调度注册数据和所述调度日志数据经由所述目标微服务网关上传至所述前端界面。
可选的,所述调度模块包括:判断单元,用于判断所述定时任务是否存在协作微服务模块,其中,所述协作微服务模块部署在所述应用程序上;控制单元,用于若所述定时任务存在所述协作微服务模块,控制所述目标微服务模块的Feign工具调用所述协作微服务模块;第二执行单元,用于分别采用所述中间件文档和所述Feign工具在所述目标微服务模块和所述协作微服务模块上协同执行所述定时任务。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本申请实施例还提供了一种电子装置,图5是本发明实施例的一种电子装置的结构图,如图5所示,包括处理器51、通信接口52、存储器53和通信总线54,其中,处理器51,通信接口52,存储器53通过通信总线54完成相互间的通信,存储器53,用于存放计算机程序;
处理器51,用于执行存储器53上所存放的程序时,实现如下步骤:获取应用程序的目标微服务模块触发的注册请求,其中,所述应用程序通过微服务架构分布式部署多个微服务模块;以所述注册请求为触发条件,调取中间件文档,其中,所述中间件文档为通过Jar包封装的调度工具;调用所述中间件文档在所述目标微服务模块上调度定时任务。
可选的,以所述注册请求为触发条件,调取中间件文档包括:若所述目标微服务模块触发注册请求,判断所述目标微服务模块本地是否存在所述中间件文档;若所述微服务模块本地不存在所述中间件文档,从预设仓库地址下载所述中间件文档至所述目标微服务模块本地,并启动所述中间件文档;若所述目标微服务模块本地存在所述中间件文档,启动所述中间件文档。
可选的,在调取中间件文档之后,所述方法还包括:从预设仓库地址读取所述调度工具的最新版本信息;判断中间件文档的当前版本信息与所述最新版本信息是否一致;若中间件文档的当前版本信息与所述最新版本信息不一致,从所述预设仓库地址下载最新版本的中间件文档,并在所述目标微服务模块本地更新历史版本的中间件文档。
可选的,调用所述中间件文档在所述目标微服务模块上调度定时任务包括:调用所述中间件文档在所述目标微服务模块上注册多个定时任务;设置所述多个定时任务的优先级顺序;调用所述中间件文档内的定时调度脚本对所述多个定时任务按照所述优先级顺序进行排队执行。
可选的,在调用所述中间件文档在所述目标微服务模块上调度定时任务之后,所述方法还包括:生成所述定时任务的调度注册数据和调度日志数据,其中,所述调度日志数据用于表征所述定时任务的实时调度状态;将所述调度注册数据和所述调度日志数据转换为指定结构的表数据;将所述表数据插入所述目标微服务模块的数据库,其中,所述应用程序的所述多个微服务模块的数据库的表结构相同。
可选的,在调用所述中间件文档在所述目标微服务模块上调度定时任务之后,所述方法还包括:接收所述应用程序的前端界面下发的任务查询指令,其中,所述任务查询指令携带所述目标微服务模块的模块标识;在预设配置表中查询与所述模块标识匹配的统一资源定位器URL地址;采用所述URL地址经过所述应用程序的微服务网关连接所述前端界面和所述目标微服务模块,并调取所述目标微服务模块本地的中间件文档查询与所述定时任务相关的调度注册数据和调度日志数据;将所述调度注册数据和所述调度日志数据经由所述目标微服务网关上传至所述前端界面。
可选的,调用所述中间件文档在所述目标微服务模块上调度定时任务包括:判断所述定时任务是否存在协作微服务模块,其中,所述协作微服务模块部署在所述应用程序上;若所述定时任务存在所述协作微服务模块,控制所述目标微服务模块的Feign工具调用所述协作微服务模块;分别采用所述中间件文档和所述Feign工具在所述目标微服务模块和所述协作微服务模块上协同执行所述定时任务。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的微服务模块的调度方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的微服务模块的调度方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种微服务模块的调度方法,其特征在于,包括:
获取应用程序的目标微服务模块触发的注册请求,其中,所述应用程序通过微服务架构分布式部署多个微服务模块;
以所述注册请求为触发条件,调取中间件文档,其中,所述中间件文档为通过Jar包封装的调度工具;
调用所述中间件文档在所述目标微服务模块上调度定时任务。
2.根据权利要求1所述的方法,其特征在于,以所述注册请求为触发条件,调取中间件文档包括:
若所述目标微服务模块触发注册请求,判断所述目标微服务模块本地是否存在所述中间件文档;
若所述微服务模块本地不存在所述中间件文档,从预设仓库地址下载所述中间件文档至所述目标微服务模块本地,并启动所述中间件文档;若所述目标微服务模块本地存在所述中间件文档,启动所述中间件文档。
3.根据权利要求1所述的方法,其特征在于,在调取中间件文档之后,所述方法还包括:
从预设仓库地址读取所述调度工具的最新版本信息;
判断中间件文档的当前版本信息与所述最新版本信息是否一致;
若中间件文档的当前版本信息与所述最新版本信息不一致,从所述预设仓库地址下载最新版本的中间件文档,并在所述目标微服务模块本地更新历史版本的中间件文档。
4.根据权利要求1所述的方法,其特征在于,调用所述中间件文档在所述目标微服务模块上调度定时任务包括:
调用所述中间件文档在所述目标微服务模块上注册多个定时任务;
设置所述多个定时任务的优先级顺序;
调用所述中间件文档内的定时调度脚本对所述多个定时任务按照所述优先级顺序进行排队执行。
5.根据权利要求1所述的方法,其特征在于,在调用所述中间件文档在所述目标微服务模块上调度定时任务之后,所述方法还包括:
生成所述定时任务的调度注册数据和调度日志数据,其中,所述调度日志数据用于表征所述定时任务的实时调度状态;
将所述调度注册数据和所述调度日志数据转换为指定结构的表数据;
将所述表数据插入所述目标微服务模块的数据库,其中,所述应用程序的所述多个微服务模块的数据库的表结构相同。
6.根据权利要求1所述的方法,其特征在于,在调用所述中间件文档在所述目标微服务模块上调度定时任务之后,所述方法还包括:
接收所述应用程序的前端界面下发的任务查询指令,其中,所述任务查询指令携带所述目标微服务模块的模块标识;
在预设配置表中查询与所述模块标识匹配的统一资源定位器URL地址;
采用所述URL地址经过所述应用程序的微服务网关连接所述前端界面和所述目标微服务模块,并调取所述目标微服务模块本地的中间件文档查询与所述定时任务相关的调度注册数据和调度日志数据;
将所述调度注册数据和所述调度日志数据经由所述目标微服务网关上传至所述前端界面。
7.根据权利要求1所述的方法,其特征在于,调用所述中间件文档在所述目标微服务模块上调度定时任务包括:
判断所述定时任务是否存在协作微服务模块,其中,所述协作微服务模块部署在所述应用程序上;
若所述定时任务存在所述协作微服务模块,控制所述目标微服务模块的Feign工具调用所述协作微服务模块;
分别采用所述中间件文档和所述Feign工具在所述目标微服务模块和所述协作微服务模块上协同执行所述定时任务。
8.一种微服务模块的调度装置,其特征在于,包括:
获取模块,用于获取应用程序的目标微服务模块触发的注册请求,其中,所述应用程序通过微服务架构分布式部署多个微服务模块;
调取模块,用于以所述注册请求为触发条件,调取中间件文档,其中,所述中间件文档为通过Jar包封装的调度工具;
调度模块,用于调用所述中间件文档在所述目标微服务模块上调度定时任务。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110242111.3A CN113010284B (zh) | 2021-03-04 | 2021-03-04 | 微服务模块的调度方法及装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110242111.3A CN113010284B (zh) | 2021-03-04 | 2021-03-04 | 微服务模块的调度方法及装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010284A true CN113010284A (zh) | 2021-06-22 |
CN113010284B CN113010284B (zh) | 2024-06-28 |
Family
ID=76405841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110242111.3A Active CN113010284B (zh) | 2021-03-04 | 2021-03-04 | 微服务模块的调度方法及装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010284B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190736A (zh) * | 2019-12-31 | 2020-05-22 | 苏宁云计算有限公司 | 基于微服务的低入侵分布式定时任务调度系统及方法 |
CN111200651A (zh) * | 2019-12-31 | 2020-05-26 | 优刻得科技股份有限公司 | 定时调用微服务的方法、系统、设备和介质 |
CN111414193A (zh) * | 2020-02-26 | 2020-07-14 | 平安银行股份有限公司 | 基于微服务框架的业务系统的实现方法及相关装置 |
CN112231078A (zh) * | 2020-09-21 | 2021-01-15 | 上海容易网电子商务股份有限公司 | 一种自动化营销系统分布式任务调度的实现方法 |
US20210021643A1 (en) * | 2019-07-18 | 2021-01-21 | Hitachi, Ltd. | System and method of microservice-based application deployment with automating authorization configuration |
-
2021
- 2021-03-04 CN CN202110242111.3A patent/CN113010284B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210021643A1 (en) * | 2019-07-18 | 2021-01-21 | Hitachi, Ltd. | System and method of microservice-based application deployment with automating authorization configuration |
CN111190736A (zh) * | 2019-12-31 | 2020-05-22 | 苏宁云计算有限公司 | 基于微服务的低入侵分布式定时任务调度系统及方法 |
CN111200651A (zh) * | 2019-12-31 | 2020-05-26 | 优刻得科技股份有限公司 | 定时调用微服务的方法、系统、设备和介质 |
CN111414193A (zh) * | 2020-02-26 | 2020-07-14 | 平安银行股份有限公司 | 基于微服务框架的业务系统的实现方法及相关装置 |
CN112231078A (zh) * | 2020-09-21 | 2021-01-15 | 上海容易网电子商务股份有限公司 | 一种自动化营销系统分布式任务调度的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113010284B (zh) | 2024-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8139509B2 (en) | Installation and management of mobile device [{S]} configuration | |
CN113010378B (zh) | 微服务模块的日志处理方法及装置、存储介质、电子装置 | |
US20060190608A1 (en) | Method for the obtaining of deployment components to electronic devices | |
CN111580854A (zh) | 基于应用程序接口网关的前后端分离方法及相关设备 | |
EP2608585B1 (en) | Method, device and system for triggering terminal operation | |
EP2429225A1 (en) | Method for provisioning parameters of terminal, system thereof, and terminal management device | |
CN111142905B (zh) | 一种ota升级方法、ota服务器及ota升级系统 | |
CN109597604B (zh) | 基于iOS平台的APP模块化开发方法、装置和设备 | |
CN111752582B (zh) | 局域网内的软件更新方法、装置及电子设备 | |
CN111356182A (zh) | 一种资源的调度、处理方法及装置 | |
EP1578148B1 (en) | Service provisioning system | |
CN105656643B (zh) | 一种基于网络配置协议进行兼容管理的方法及设备 | |
CN112217845B (zh) | 一种基于Netconf协议的数据传输方法及相关设备 | |
CN113434462A (zh) | Hdfs数据的转移方法及装置、存储介质、电子设备 | |
WO2020253330A1 (zh) | 客户端设备配置管理的方法和装置 | |
CN113010284B (zh) | 微服务模块的调度方法及装置、存储介质、电子装置 | |
CN114461399B (zh) | 资源的分配方法和装置、存储介质及电子装置 | |
CN115567388A (zh) | 网络切片配置自动更新方法、系统、装置及存储介质 | |
CN113542409B (zh) | 一种RocketMQ消息队列实例管理系统及处理方法 | |
CN113076128B (zh) | 用于机器人配置的方法、装置、电子设备及存储介质 | |
CN111385110B (zh) | 网络的管理方法及装置 | |
CN101909283B (zh) | 一种m2m平台及大容量下载的负荷分担实现方法 | |
CN113780704A (zh) | 一种任务处理方法和装置 | |
CN112148501A (zh) | 多个子应用的通信方法、装置、电子装置和存储介质 | |
CN107846300B (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 |