CN117348901A - 一种业务程序在线更新方法及装置 - Google Patents
一种业务程序在线更新方法及装置 Download PDFInfo
- Publication number
- CN117348901A CN117348901A CN202311277543.3A CN202311277543A CN117348901A CN 117348901 A CN117348901 A CN 117348901A CN 202311277543 A CN202311277543 A CN 202311277543A CN 117348901 A CN117348901 A CN 117348901A
- Authority
- CN
- China
- Prior art keywords
- sub
- functional module
- execution code
- code file
- module
- 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 67
- 230000008859 change Effects 0.000 claims abstract description 24
- 230000006870 function Effects 0.000 claims description 23
- 238000012544 monitoring process Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 16
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本说明书提供一种业务程序在线更新方法及装置,所述方法包括:从获取的目标业务程序中拆分出至少一个子功能模块;确定所述至少一个子功能模块中的各个子功能模块是否发生变更;如果所述至少一个子功能模块中的任一子功能模块发生变更,则重加载所述任一子功能模块变更后的执行代码文件,以在线更新所述目标业务程序。
Description
技术领域
本申请涉及在线更新技术领域,尤其涉及一种业务程序在线更新方法、装置、电子设备及机器可读存储介质。
背景技术
在目前的技术中,通常采用容器云的蓝绿发布方式进行在线更新,该方式要求业务程序接入容器云,并要求针对该业务程序设置有两套硬件资源,因此,对硬件资源的消耗较大。同时,需要在对业务程序的部分执行代码修改之后,对业务程序的整个执行代码进行编译部署,该在线更新的过程较为繁琐,耗时较长,导致业务程序在线更新的效率不高。
发明内容
本申请提供一种业务程序在线更新方法,所述方法包括:
从获取的目标业务程序中拆分出至少一个子功能模块;
确定所述至少一个子功能模块中的各个子功能模块是否发生变更;
如果所述至少一个子功能模块中的任一子功能模块发生变更,则重加载所述任一子功能模块变更后的执行代码文件,以在线更新所述目标业务程序。
可选的,所述确定所述至少一个子功能模块中的各个子功能模块是否发生变更之前,所述方法还包括:
创建与所述目标业务程序对应的文件监听器;
确定所述至少一个子功能模块中的各个子功能模块是否发生变更,包括:
通过所述文件监听器对所述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,并基于监听结果,确定所述至少一个子功能模块中的各个子功能模块是否发生变更。
可选的,通过所述文件监听器对所述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,并基于监听结果,确定所述至少一个子功能模块中的各个子功能模块是否发生变更,包括:
通过所述文件监听器对所述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,获取所述目标执行代码文件对应的目标哈希值;
将所述目标哈希值与存储的与所述各个子功能模块对应的历史哈希值进行比对,并基于比对结果,确定所述至少一个子功能模块中的各个子功能模块是否发生变更。
可选的,所述方法还包括:
如果所述至少一个子功能模块中的任一子功能模块发生变更,则基于与所述任一子功能模块的目标执行代码文件对应的目标哈希值更新与所述任一子功能模块对应的历史哈希值。
可选的,所述执行代码文件为Jar文件。
可选的,重加载所述任一子功能模块变更后的执行代码文件,包括:
获取所述任一子功能模块对应的执行代码文件的存储地址对应的URL;
通过类加载器基于所述URL获取所述任一子功能模块变更后的目标执行代码文件,将所述目标执行代码文件加载至内存,并生成与所述目标执行代码文件对应的Class对象;
通过反射将所述Class对象实例化,以完成重加载所述任一子功能模块变更后的执行代码文件。
可选的,所述至少一个子功能模块包括以下示出的子功能模块中的一个或多个的组合:
用户模块,用于提供用户信息管理、用户注册和登录功能;
订单模块,用于提供业务订单创建、处理、查询、支付功能;
价格模块,用于提供价格计算、折扣策略管理功能;
地址模块,用于提供用户的收货地址管理功能。
本申请还提供一种业务程序在线更新装置,所述装置包括:
拆分单元,用于从获取的目标业务程序中拆分出至少一个子功能模块;
确定单元,用于确定所述至少一个子功能模块中的各个子功能模块是否发生变更;
更新单元,用于如果所述至少一个子功能模块中的任一子功能模块发生变更,则重加载所述任一子功能模块变更后的执行代码文件,以在线更新所述目标业务程序。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行所述业务程序在线更新方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现所述业务程序在线更新方法。
本申请提供的技术方案至少可以包括以下有益效果:
通过以上实施例,通过将获取的目标业务程序拆分出至少一个子功能模块,并通过确定该至少一个子功能模块中的任一子功能模块发生变更时,重加载该任一子功能模块变更后的执行代码文件,从而在线快速更新该目标业务程序,提高业务程序在线更新的效率。
附图说明
图1是一示例性的实施例示出的一种业务程序在线更新方法的流程图。
图2是一示例性的实施例示出的另一种业务程序在线更新方法的流程图。
图3是一示例性的实施例示出的一种成业务程序在线更新装置所在电子设备的硬件结构图。
图4是一示例性的实施例示出的一种业务程序在线更新装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
针对已经上线发布的业务程序,如果在运行过程中出现了问题,通常需要对该业务程序的代码进行修改,并在修改之后,重新进行发布,在这种情况下,容易导致业务功中断,影响用户的体验。因此,需要采用在线更新的方式对该业务程序的代码进行修改。
在目前的技术中,通常采用容器云的蓝绿发布方式进行在线更新,该方式是一种在生产环境中无缝部署和更新应用程序的策略,通过同时运行两个版本的应用,即"蓝色"版本和"绿色"版本,来实现平滑的发布和回滚过程。这种方式要求业务程序接入容器云,并要求针对该业务程序设置有两套硬件资源,因此,对硬件资源的消耗较大。同时,需要在对业务程序的部分执行代码修改之后,对业务程序的整个执行代码进行编译部署,该在线更新的过程较为繁琐,耗时较长,导致业务程序在线更新的效率不高。
有鉴于此,本申请旨在提出一种业务程序在线更新方法。该方法通过目标业务程序中拆分出的至少一个子功能模块中的任一子功能模块发生变更时,重加载该任一子功能模块变更后的执行代码文件,从而在线快速更新该目标业务程序。
在实现时,可以从获取的目标业务程序中拆分出至少一个子功能模块;
进一步的,可以确定所述至少一个子功能模块中的各个子功能模块是否发生变更;
进一步的,如果所述至少一个子功能模块中的任一子功能模块发生变更,则可以重加载所述任一子功能模块变更后的执行代码文件,以在线更新所述目标业务程序。
通过以上实施例,通过将获取的目标业务程序拆分出至少一个子功能模块,并通过确定该至少一个子功能模块中的任一子功能模块发生变更时,重加载该任一子功能模块变更后的执行代码文件,从而在线快速更新该目标业务程序,提高业务程序在线更新的效率。
下面通过具体实施例,并结合具体的应用场景对本申请进行描述。
请参见图1,图1是一示例性的实施例示出的一种业务程序在线更新方法的流程图。
本方案可以应用于针对目标业务程序进行在线更新的更新程序,本说明书对此不做限定。
如图1所示,上述更新程序可以执行以下步骤:
步骤102,从获取的目标业务程序中拆分出至少一个子功能模块。
上述更新程序可以从项目仓库中获取目标项目对应的目标业务程序,并可以按照功能从该目标业务程序中拆分出至少一个子功能模块。
例如,可以按照业务功能,从该目标业务程序中拆分出提供不同业务对应的子功能模块。
在示出的一种实施方式中,上述至少一个子功能模块可以包括以下示出的子功能模块中的一个或多个的组合:用户模块,用于提供用户信息管理、用户注册和登录功能;订单模块,用于提供业务订单创建、处理、查询、支付功能;价格模块,用于提供价格计算、折扣策略管理功能;地址模块,用于提供用户的收货地址管理功能。
例如,上述用户模块可以提供用户信息管理、用户注册和登录功能。该用户信息可以包括用户名称和用户密码,上述用户模块可以响应于接收到用户信息,将该用户信息与存储的用户信息进行比对,以确定该用户是否为新用户,如果该用户是新用户,则可以为该新用户提供注册服务;如果该用户不是新用户,则可以为该用户提供登录服务。
又例如,上述订单模块可以提供业务订单创建、处理、查询、支付功能,其中,该订单模块可以响应于针对业务订单的不同触发操作,提供针对该业务订单的对应功能;上述价格模块可以提供价格计算、折扣策略管理功能,其中,该价格模块可以用于进行任何与业务订单的价格相关的计算;上述地址模块可以用于管理用户的收货地址。
步骤104,确定上述至少一个子功能模块中的各个子功能模块是否发生变更。
上述更新程序可以通过创建的文件监听器来确定上述拆分出的至少一个子功能模块中的各个子功能模块是否发生变更,本说明书对此不做限定。
在示出的一种实施方式中,上述更新程序可以在确定上述至少一个子功能模块中的各个子功能模块是否发生变更之前,创建与上述目标业务程序对应的文件监听器,可以通过上述文件监听器对上述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,并基于监听结果,确定上述至少一个子功能模块中的各个子功能模块是否发生变更。
具体而言,可以创建针对各个子功能模块对应的执行代码文件的存储地址进行监听的监听器,该监听器可以实时监听该存储地址下的文件是否发生变更,从而上述更新程序可以基于监听结果确定上述至少一个子功能模块中的各个子功能模块是否发生变更。
例如,上述至少一个子功能模块可以包括子功能模块_1,上述更新程序可以创建针对子功能模块_1对应的执行代码文件的存储地址进行监听的监听器_1,该监听器_1可以实时监听该存储地址下的文件是否发生变更,如果该存储地址下的文件发生变更,该监听器可以向上述更新程序发送监听结果,基于该监听器_1的监听结果,上述更新程序可以确定上述子功能模块_1是否发生变更。
通过这种方式,能够实时检测子功能模块的变更情况,从而及时对子功能模块进行在线更新,提高业务程序在线更新的效率。
在示出的一种实施方式中,上述目标业务程序可以是Java程序;上述执行代码文件可以为Jar文件。
在示出的一种实施方式中,上述更新程序可以通过上述文件监听器对上述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,获取上述目标执行代码文件对应的目标哈希值;将上述目标哈希值与存储的与上述各个子功能模块对应的历史哈希值进行比对,并基于比对结果,确定上述至少一个子功能模块中的各个子功能模块是否发生变更。
上述文件监听器可以通过将任一子功能模块对应的原执行代码文件的哈希值与最新的执行代码文件的哈希值进行比对,从而确定该存储地址下的文件是否发生变更。
例如,上述目标业务程序可以是Java程序,在这种情况下,上述文件监听器可以通过getMD5方法获取上述存储地址下的目标执行代码文件对应的目标哈希值,可以将该目标哈希值与预先存储的与该任一子功能模块的执行代码文件对应的历史哈希值进行比对,并基于比对结果,可以确定该任一子功能模块是否发生变更。
通过这种方式,基于执行代码文件对应的哈希值的比对结果,能够更加精确地确定子功能模块是否发生变更,从而提高确定子功能模块是否变更的准确性。
在示出的一种实施方式中,如果上述至少一个子功能模块中的任一子功能模块发生变更,则基于与上述任一子功能模块的目标执行代码文件对应的目标哈希值更新与该任一子功能模块对应的历史哈希值。
例如,上述至少一个子功能模块可以包括子功能模块_1以及子功能模块_2,如果确定该至少一个子功能模块中的子功能模块_1发生变更,则可以基于获取到的与该子功能模块_1对应的目标哈希值更新与该子功能模块_1对应的历史哈希值。
通过这种方式,能够及时更新与各个子功能模块对应的历史哈希值,提高确定子功能模块是否变更的准确性。
步骤106,如果上述至少一个子功能模块中的任一子功能模块发生变更,则重加载上述任一子功能模块变更后的执行代码文件,以在线更新上述目标业务程序。
如果确定上述至少一个子功能模块中的任一子功能模块发生变更,上述更新程序可以将上述任一子功能模块变更后的执行代码文件进行重加载,以在线更新上述目标业务程序。
例如,上述至少一个子功能模块可以包括子功能模块_1以及子功能模块_2,如果确定上述子功能模块_1发生变更,上述更新程序可以将上述子功能模块_1变更后的执行代码文件进行重加载。
上述更新程序可以基于反射机制,重加载上述任一子功能模块变更后的执行代码文件,本说明书对此不做限定。
在示出的一种实施方式中,上述更新程序可以获取上述任一子功能模块对应的执行代码文件的存储地址对应的URL;通过类加载器基于上述URL获取上述任一子功能模块变更后的目标执行代码文件,将上述目标执行代码文件加载至内存,并生成与上述目标执行代码文件对应的Class对象;通过反射将上述Class对象实例化,以完成重加载上述任一子功能模块变更后的执行代码文件。
URL(Uniform Resource Locator,统一资源定位符),是用于标识和定位互联网上资源(如网页、文件、图像等)的字符串。
例如,上述目标业务程序可以是Java程序,在这种情况下,上述更新程序可以获取上述任一子功能模块对应的执行代码文件的存储地址,并可以通过toURL方法将该存储地址转换为与与该执行代码文件的存储地址对应的URL,进一步地,可以通过类加载器基于上述URL获取上述任一子功能模块变更后的目标执行代码文件,将上述目标执行代码文件加载至内存,同时,可以生成与上述目标执行代码文件对应的Class对象,进一步地,可以通过反射将该Class对象实例化,从而完成该重加载过程。
通过这种方式,能够基于反射机制重加载该子功能模块变更后的执行代码文件,从而提高目标业务程序在线更新的效率。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面结合如图2所示的业务程序在线更新方法的流程图对本说明书中的实施例进行说明。
请参见图2,图2是一示例性的实施例示出的另一种业务程序在线更新方法的流程图。
步骤202,从获取的目标业务程序中拆分出至少一个子功能模块。
上述更新程序可以从项目仓库中获取目标项目对应的目标业务程序,并从该目标业务程序拆分子功能模块_1以及子功能模块_2;其中,上述目标业务程序可以是Java程序,该子功能模块_1可以为用户模块,该子功能模块_2可以为订单模块。
步骤204,通过上述文件监听器对上述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,以确定上述至少一个子功能模块中的各个子功能模块是否发生变更。
上述更新程序可以创建针对子功能模块_1对应的执行代码文件的存储地址进行监听的监听器_1,该监听器_1可以实时监听该存储地址下的文件是否发生变更,具体而言,可以通过getMD5方法获取上述存储地址下的目标执行代码文件对应的目标哈希值,可以将该目标哈希值与预先存储的与该子功能模块_1的执行代码文件对应的历史哈希值进行比对,并基于比对结果,可以确定该子功能模块_1是否发生变更;上述更新程序还可以创建针对子功能模块_2对应的执行代码文件的存储地址进行监听的监听器_2,该监听器_2可以实时监听该存储地址下的文件是否发生变更,具体而言,可以通过getMD5方法获取上述存储地址下的目标执行代码文件对应的目标哈希值,可以将该目标哈希值与预先存储的与该子功能模块_2的执行代码文件对应的历史哈希值进行比对,并基于比对结果,可以确定该子功能模块_2是否发生变更。
步骤206,如果上述至少一个子功能模块中的任一子功能模块发生变更,则基于与上述任一子功能模块的目标执行代码文件对应的目标哈希值更新与该任一子功能模块对应的历史哈希值。
如果确定上述子功能模块_1发生变更,则可以基于获取到的与该子功能模块_1对应的目标哈希值更新与该子功能模块_1对应的历史哈希值。
步骤208,基于反射机制,重加载上述任一子功能模块变更后的执行代码文件。
上述更新程序可以获取上述子功能模块_1对应的执行代码文件的存储地址,并可以通过toURL方法将该存储地址转换为与与该执行代码文件的存储地址对应的URL,进一步地,可以通过类加载器基于上述URL获取上述子功能模块_1变更后的目标执行代码文件,将上述目标执行代码文件加载至内存,同时,可以生成与上述目标执行代码文件对应的Class对象,进一步地,可以通过反射将该Class对象实例化,从而完成该重加载过程。
与所述业务程序在线更新方法的实施例对应的,本说明书还提供了一种业务程序在线更新装置的实施例。
请参见图3,图3是一示例性的实施例示出的一种业务程序在线更新装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器302、内部总线304、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器302从非易失性存储器310中读取对应的计算机程序到内存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图4,图4是一示例性的实施例示出的一种业务程序在线更新装置的框图。该业务程序在线更新装置可以应用于图3所示的电子设备中,以实现本说明书的技术方案。其中,所述装置可以包括:
拆分单元402,用于从获取的目标业务程序中拆分出至少一个子功能模块;
确定单元404,用于确定上述至少一个子功能模块中的各个子功能模块是否发生变更;
更新单元406,用于如果上述至少一个子功能模块中的任一子功能模块发生变更,则重加载上述任一子功能模块变更后的执行代码文件,以在线更新上述目标业务程序。
在本实施例中,上述装置还可以包括创建单元,用于:
创建与上述目标业务程序对应的文件监听器;
上述确定单元404,具体可以用于:
通过上述文件监听器对上述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,并基于监听结果,确定上述至少一个子功能模块中的各个子功能模块是否发生变更。
在本实施例中,上述装置还可以包括获取单元,用于:
获取与上述至少一个子功能模块中的各个子功能模块的执行代码文件分别对应的第一哈希值,并存储上述第一哈希值;
上述更新单元406,具体可以用于:
通过上述文件监听器对上述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,获取上述目标执行代码文件对应的目标哈希值;
将上述目标哈希值与存储的与上述各个子功能模块对应的历史哈希值进行比对,并基于比对结果,确定上述至少一个子功能模块中的各个子功能模块是否发生变更。
在本实施例中,上述装置还可以包括存储单元,用于:
如果上述至少一个子功能模块中的任一子功能模块发生变更,则基于与上述任一子功能模块的目标执行代码文件对应的目标哈希值更新与上述任一子功能模块对应的历史哈希值。
在本实施例中,上述执行代码文件可以为Jar文件。
在本实施例中,上述更新单元406,具体可以用于:
获取上述任一子功能模块对应的执行代码文件的存储地址对应的URL;
通过类加载器基于上述URL获取上述任一子功能模块变更后的目标执行代码文件,将上述目标执行代码文件加载至内存,并生成与上述目标执行代码文件对应的Class对象;
通过反射将上述Class对象实例化,以完成重加载上述任一子功能模块变更后的执行代码文件。
在本实施例中,上述至少一个子功能模块可以包括以下示出的子功能模块中的一个或多个的组合:
用户模块,用于提供用户信息管理、用户注册和登录功能;
订单模块,用于提供业务订单创建、处理、查询、支付功能;
价格模块,用于提供价格计算、折扣策略管理功能;
地址模块,用于提供用户的收货地址管理功能。所述装置中各个单元的功能和作用的实现过程具体详见所述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
所述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
所述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
Claims (10)
1.一种业务程序在线更新方法,所述方法包括:
从获取的目标业务程序中拆分出至少一个子功能模块;
确定所述至少一个子功能模块中的各个子功能模块是否发生变更;
如果所述至少一个子功能模块中的任一子功能模块发生变更,则重加载所述任一子功能模块变更后的执行代码文件,以在线更新所述目标业务程序。
2.根据权利要求1所述的方法,所述确定所述至少一个子功能模块中的各个子功能模块是否发生变更之前,所述方法还包括:
创建与所述目标业务程序对应的文件监听器;
确定所述至少一个子功能模块中的各个子功能模块是否发生变更,包括:
通过所述文件监听器对所述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,并基于监听结果,确定所述至少一个子功能模块中的各个子功能模块是否发生变更。
3.根据权利要求2所述的方法,通过所述文件监听器对所述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,并基于监听结果,确定所述至少一个子功能模块中的各个子功能模块是否发生变更,包括:
通过所述文件监听器对所述至少一个子功能模块中的各个子功能模块对应的执行代码文件的存储地址进行监听,获取所述目标执行代码文件对应的目标哈希值;
将所述目标哈希值与存储的与所述各个子功能模块对应的历史哈希值进行比对,并基于比对结果,确定所述至少一个子功能模块中的各个子功能模块是否发生变更。
4.根据权利要求3所述的方法,所述方法还包括:
如果所述至少一个子功能模块中的任一子功能模块发生变更,则基于与所述任一子功能模块的目标执行代码文件对应的目标哈希值更新与所述任一子功能模块对应的历史哈希值。
5.根据权利要求1所述的方法,所述执行代码文件为Jar文件。
6.根据权利要求1所述的方法,重加载所述任一子功能模块变更后的执行代码文件,包括:
获取所述任一子功能模块对应的执行代码文件的存储地址对应的URL;
通过类加载器基于所述URL获取所述任一子功能模块变更后的目标执行代码文件,将所述目标执行代码文件加载至内存,并生成与所述目标执行代码文件对应的Class对象;
通过反射将所述Class对象实例化,以完成重加载所述任一子功能模块变更后的执行代码文件。
7.根据权利要求1所述的方法,所述至少一个子功能模块包括以下示出的子功能模块中的一个或多个的组合:
用户模块,用于提供用户信息管理、用户注册和登录功能;
订单模块,用于提供业务订单创建、处理、查询、支付功能;
价格模块,用于提供价格计算、折扣策略管理功能;
地址模块,用于提供用户的收货地址管理功能。
8.一种业务程序在线更新装置,所述装置包括:
拆分单元,用于从获取的目标业务程序中拆分出至少一个子功能模块;
确定单元,用于确定所述至少一个子功能模块中的各个子功能模块是否发生变更;
更新单元,用于如果所述至少一个子功能模块中的任一子功能模块发生变更,则重加载所述任一子功能模块变更后的执行代码文件,以在线更新所述目标业务程序。
9.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至7任一项所述的业务程序在线更新方法。
10.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至7任一项所述的业务程序在线更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311277543.3A CN117348901A (zh) | 2023-09-28 | 2023-09-28 | 一种业务程序在线更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311277543.3A CN117348901A (zh) | 2023-09-28 | 2023-09-28 | 一种业务程序在线更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117348901A true CN117348901A (zh) | 2024-01-05 |
Family
ID=89358700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311277543.3A Pending CN117348901A (zh) | 2023-09-28 | 2023-09-28 | 一种业务程序在线更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117348901A (zh) |
-
2023
- 2023-09-28 CN CN202311277543.3A patent/CN117348901A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8495621B2 (en) | Catalog-based software component management | |
CN111898139B (zh) | 数据读写方法及装置、电子设备 | |
JP2017514218A (ja) | サードパーティアプリケーションの実行 | |
CN111897623B (zh) | 一种集群管理方法、装置、设备及存储介质 | |
US9098316B2 (en) | Routing function calls to specific-function dynamic link libraries in a general-function environment | |
US20160248890A1 (en) | Hybrid native networked applications | |
CN111414369A (zh) | 一种数据处理方法、装置及设备 | |
US10776180B1 (en) | Expression-based feature toggle in an application programming interface (API) | |
CN114064594A (zh) | 数据处理方法和装置 | |
CN114416224A (zh) | 一种在多微服务环境下调用微服务的方法及装置 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN110858242A (zh) | 页面跳转方法及装置 | |
CN113157477A (zh) | 内存泄漏的归因方法、装置、电子设备和存储介质 | |
CN115174158B (zh) | 基于多云管理平台的云产品配置检查方法 | |
CN112579308A (zh) | 任务处理方法及系统 | |
CN110019357B (zh) | 数据库查询脚本生成方法及装置 | |
CN117348901A (zh) | 一种业务程序在线更新方法及装置 | |
CN115470264A (zh) | 一种数据审计方法及装置、电子设备、存储介质 | |
CN115714706A (zh) | 基于内嵌h5的访问加速系统、方法、存储介质及电子设备 | |
CN111158565B (zh) | 一种翻页提示方法、装置、电子设备和存储介质 | |
CN110297625B (zh) | 应用的处理方法及装置 | |
CN114327941A (zh) | 一种服务提供方法及装置 | |
CN109561123B (zh) | 令牌token的缓存方法及装置 | |
CN111258873A (zh) | 测试方法及装置 | |
CN111225075A (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 |