CN116521221A - web应用管理方法和装置 - Google Patents
web应用管理方法和装置 Download PDFInfo
- Publication number
- CN116521221A CN116521221A CN202310580740.6A CN202310580740A CN116521221A CN 116521221 A CN116521221 A CN 116521221A CN 202310580740 A CN202310580740 A CN 202310580740A CN 116521221 A CN116521221 A CN 116521221A
- Authority
- CN
- China
- Prior art keywords
- application
- web
- target
- module
- source code
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 110
- 238000000034 method Methods 0.000 claims description 56
- 238000012545 processing Methods 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 14
- 238000009739 binding Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000012856 packing Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 23
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000004806 packaging method and process Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
-
- 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
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种web应用管理方法和装置,属于计算机软件技术领域。所述web应用管理方法,包括:将目标应用源代码提交至gitlab仓库;所述目标应用源代码为本地web应用对应的应用源代码;基于配置于服务器的git代码版本管理工具,同步所述gitlab仓库中的所述目标应用源代码,生成多个web应用;基于配置于所述服务器的node环境,通过PM2管理所述多个web应用。本申请的web应用管理方法,在应用时无需预先打包和编译,效率较高,耗时较短;且实现了集群化管理多个web应用,提高了自动化部署的效率,降低了管理成本。
Description
技术领域
本申请属于计算机软件技术领域,尤其涉及一种web应用管理方法和装置。
背景技术
面对客户端应用层软件的高速发展,企业软件应用过多,需要对多应用进行管理。相关技术中存在基于工程师打包编译前端项目,并基于前端与后端或运维工程师共同完成前端项目部署,常用的web应用管理方法中前端项目的打包编译和部署环节较多,打包编译效率较低,耗时较长,且传统前端项目部署不利于多应用管理。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种web应用管理方法和装置,在应用时无需预先打包和编译,效率较高,耗时较短;且实现了集群化管理多个web应用,提高了自动化部署的效率,降低了管理成本。
第一方面,本申请提供了一种web应用管理方法,该方法包括:
将目标应用源代码提交至gitlab仓库;所述目标应用源代码为本地web应用对应的应用源代码;
基于配置于服务器的git代码版本管理工具,同步所述gitlab仓库中的所述目标应用源代码,生成多个web应用;
基于配置于所述服务器的node环境,通过PM2管理所述多个web应用。
根据本申请实施例提供的web应用管理方法,通过将目标应用源代码直接提交至gitlab仓库,然后基于配置于服务器的git代码版本管理工具,同步目标应用源代码,并生成多个web应用,然后基于配置于服务器的node环境,通过PM2对多个web应用进行多线程集群化管理,在应用时无需预先打包和编译,效率较高,耗时较短;且实现了集群化管理多个web应用,提高了自动化部署的效率,降低了管理成本。
本申请一个实施例的web应用管理方法,所述基于配置于所述服务器的node环境,通过PM2管理所述多个web应用,包括:
基于负载均衡策略和热重载策略中的至少一种,管理所述多个web应用。
本申请一个实施例的web应用管理方法,基于所述负载均衡策略管理所述多个web应用,包括:
基于平台和协议中的至少一种,确定目标模块;
基于Node.js cluster模块使用的主子进程方式,采用所述目标模块对应的应用模式,管理所述多个web应用。
本申请一个实施例的web应用管理方法,所述基于Node.js cluster模块使用的主子进程方式,采用所述目标模块对应的应用模式,管理所述多个web应用,包括:
在所述目标模块对应的应用模式为非Windows平台应用模式的情况下,采用轮询处理模式管理所述多个web应用。
本申请一个实施例的web应用管理方法,所述基于Node.js cluster模块使用的主子进程方式,采用所述目标模块对应的应用模式,管理所述多个web应用,还包括:
在所述目标模块对应的应用模式为Windows平台应用模式的情况下,将文件描述符信息和端口信息中的至少一种传递给子进程;
所述子进程基于接收到的所述文件描述符信息和所述端口信息中的至少一种,创建SocketHandle和ServerHandle中的至少一种;
基于所述SocketHandle和所述ServerHandle中的至少一种,进行端口绑定、监听以及处理请求中的至少一种。
本申请一个实施例的web应用管理方法,基于所述热重载策略管理所述多个web应用,包括:
在浏览器与webpack-dev-server建立WebSocket连接的情况下,在Webpack监听到文件变更后,增量构建发生变更的模块,并通过所述WebSocket向所述浏览器发送哈希事件;
浏览器接收所述哈希事件,请求manifest资源文件,确认增量变更范围,并加载发生变更的增量模块;
在所述Webpack运行时,触发变更模块的module.hot.accept回调,执行代码变更逻辑。
本申请一个实施例的web应用管理方法,所述同步所述gitlab仓库中的所述目标应用源代码,包括:
在所述gitlab仓库中配置自动同步脚本;
基于所述自动同步脚本,自动同步所述目标应用源代码;
或者;
接收用户的第一输入,所述第一输入用于拉取所述目标应用源代码
响应于所述第一输入,同步所述目标应用源代码。
第二方面,本申请提供了一种web应用管理装置,该装置包括:
第一处理模块,用于将目标应用源代码提交至gitlab仓库;所述目标应用源代码为本地web应用对应的应用源代码;
第二处理模块,用于基于配置于服务器的git代码版本管理工具,同步所述gitlab仓库中的所述目标应用源代码,生成多个web应用;
第三处理模块,用于基于配置于所述服务器的node环境,通过PM2管理所述多个web应用。
根据本申请实施例提供的web应用管理装置,通过将目标应用源代码直接提交至gitlab仓库,然后基于配置于服务器的git代码版本管理工具,同步目标应用源代码,并生成多个web应用,然后基于配置于服务器的node环境,通过PM2对多个web应用进行多线程集群化管理,在应用时无需预先打包和编译,效率较高,耗时较短;且实现了集群化管理多个web应用,提高了自动化部署的效率,降低了管理成本。
第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的web应用管理方法。
第四方面,本申请提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的web应用管理方法。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的web应用管理方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
通过将目标应用源代码直接提交至gitlab仓库,然后基于配置于服务器的git代码版本管理工具,同步目标应用源代码,并生成多个web应用,然后基于配置于服务器的node环境,通过PM2对多个web应用进行多线程集群化管理,在应用时无需预先打包和编译,效率较高,耗时较短;且实现了集群化管理多个web应用,提高了自动化部署的效率,降低了管理成本。
进一步地,基于负载均衡策略管理多个web应用,可以集群化管理多个web应用,有利于cpu资源合理分配;基于热重载策略管理多个web应用,可以实时编译源代码以在线实时更新版本,用户访问页面的用时较短,可以更快速地查看应用,提升了用户体验。
更进一步地,通过在gitlab仓库中配置自动同步脚本,以自动同步目标应用源代码,或者基于用户的第一输入,以手动拉取目标应用源代码,提供了多种目标应用源代码的同步方法,适用于多种不同的情况,具有较高的普适性,适用场景较广泛。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例提供的web应用管理方法的流程示意图之一;
图2是本申请实施例提供的web应用管理方法的流程示意图之二;
图3是本申请实施例提供的web应用管理装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合图1至图2描述本申请实施例的web应用管理方法。
需要说明的是,web应用管理方法的执行主体可以为服务器,或者可以为web应用管理装置,或者还可以为用户的终端,包括但不限于移动终端和非移动终端。
例如,移动终端包括但不限于手机、PDA智能终端、平板电脑以及车载智能终端等;非移动终端包括但不限于PC端等。
如图1所示,该web应用管理方法,包括:步骤110、步骤120和步骤130。
步骤110、将目标应用源代码提交至gitlab仓库;目标应用源代码为本地web应用对应的应用源代码。
在该步骤中,目标应用源代码为本地web应用对应的应用源代码。
gitlab为基于git实现的在线代码仓库软件,gitlab可以提供web可视化管理界面。
如图2所示,在实际执行过程中,可以将本地web应用对应的目标应用源代码推送至gitlab仓库。
在本申请中,不需要预先打包和编译源代码,可以直接将目标应用源代码提交至gitlab仓库。
步骤120、基于配置于服务器的git代码版本管理工具,同步gitlab仓库中的目标应用源代码,生成多个web应用。
在该步骤中,服务器为网络中可以对其它机器提供服务的计算机系统;例如,服务器可以为高性能计算机。
git为分布式版本控制系统,git可以管理源代码。
web应用为多个web资源的集合,web应用为供浏览器访问的程序,一个web应用可以包括至少一个静态web资源和至少一个动态web资源。
可以基于目标应用源代码,服务器生成多个web应用。
可以理解的是,同步gitlab仓库中的目标应用源代码可以采用用户手动同步或者由系统自动同步的方式。
其一、系统自动同步
在一些实施例中,步骤120可以包括:
在gitlab仓库中配置自动同步脚本;
基于自动同步脚本,自动同步目标应用源代码。
在该实施例中,自动同步脚本用于自动同步目标应用源代码。
自动同步脚本可以基于Python或Matlab等建立,可以基于用户实际需求进行选择,本申请不作限定。
在实际执行过程中,可以在服务器配置安装git代码版本管理工具,然后在gitlab仓库中配置自动同步脚本,然后基于自动同步脚本,自动同步目标应用源代码。
根据本申请实施例提供的web应用管理方法,通过在gitlab仓库中配置自动同步脚本,以自动同步目标应用源代码,操作便捷,提升了用户的使用体验。
其二,用户手动同步
接收用户的第一输入,第一输入用于拉取目标应用源代码
响应于第一输入,同步目标应用源代码。
在该实施例中,第一输入用于拉取gitlab仓库中的目标应用源代码。
其中,第一输入可以为如下至少一种方式:
其一,第一输入可以为触控操作,包括但不限于点击操作、滑动操作和按压操作等。
在该实施方式中,接收用户的第一输入,可以为,接收用户在终端显示屏的显示区域的触控操作。
为了降低用户误操作率,可以将第一输入的作用区域限定在特定的区域内,比如输入界面的上部中间区域;或者在显示拉取gitlab仓库中的目标应用源代码界面的状态下,在当前界面显示目标控件,触摸目标控件,即可实现第一输入;或者将第一输入设置为在目标时间间隔内对显示区域的连续多次敲击操作。
其二,第一输入可以为实体按键输入。
在该实施方式中,终端的机身上设有与拉取gitlab仓库中的目标应用源代码对应的实体按键,接收用户的第一输入,可以为,接收用户按压对应的实体按键的操作;第一输入还可以为同时按压多个实体按键的组合操作。
当然,在其他实施例中,第一输入也可以为其他形式,包括但不限于字符输入等,具体可根据实际需要决定,本申请实施例对此不作限定。
在实际执行过程中,可以在服务器配置安装git代码版本管理工具,然后基于用户的第一输入手动拉取分支代码。
根据本申请实施例提供的web应用管理方法,通过在gitlab仓库中配置自动同步脚本,以自动同步目标应用源代码,或者基于用户的第一输入,以手动拉取目标应用源代码,提供了多种目标应用源代码的同步方法,适用于多种不同的情况,具有较高的普适性,适用场景较广泛。
步骤130、基于配置于服务器的node环境,通过PM2管理多个web应用。
在该步骤中,node环境为前端应用的编译和运行所依赖的环境。
PM2(Process Manager 2)为具有内置负载均衡器的Node.js应用程序的生产运行时和进程管理器。
可以通过PM2管理多个web应用。
在实际执行过程中,可以首先在服务器配置node环境,然后通过PM2管理多个web应用。
发明人在研发过程中发现,相关技术中存在基于工程师打包编译前端项目,前端需要借助后端或运维工程师共同完成前端项目部署,该方法中前端项目的打包编译和部署环节较多,打包编译效率较低,耗时较长;且传统前端项目部署不利于多应用管理。
在本申请中,直接将目标应用源代码提交至gitlab仓库,无需预先打包和编译,效率较高,耗时较短;
且本申请基于云服务器和nodejs环境中灵活强大的生态,通过PM2对web应用进行多线程集群化管理,使得web应用的部署更加简单和高效,减少了管理成本,提高了自动化部署的效率。
除此之外,本申请的适用于所有web应用的部署,可以应用于ssr服务端渲染web应用,以及前端最新框架vue3+vite,应用范围更广泛。
根据本申请实施例提供的web应用管理方法,通过将目标应用源代码直接提交至gitlab仓库,然后基于配置于服务器的git代码版本管理工具,同步目标应用源代码,并生成多个web应用,然后基于配置于服务器的node环境,通过PM2对多个web应用进行多线程集群化管理,在应用时无需预先打包和编译,效率较高,耗时较短;且实现了集群化管理多个web应用,提高了自动化部署的效率,降低了管理成本。
如图2所示,在一些实施例中,步骤130可以包括:
基于负载均衡策略和热重载策略中的至少一种,管理多个web应用。
在该实施例中,负载均衡策略可以包括轮询、weight(轮询权重)、ip_hash(依据ip分配方式)、least_conn(最少连接方式)、fair(响应时间方式)以及url_hash(依据URL分配方式)等。
基于热重载策略管理多个web应用,在应用程序运行时也可以更改源代码。
在本申请中,基于负载均衡策略管理多个web应用,可以集群化管理多个web应用,有利于cpu资源合理分配;
基于热重载策略管理多个web应用,可以实时编译源代码,用户访问页面的用时较短,可以更快速地查看应用。
根据本申请实施例提供的web应用管理方法,基于负载均衡策略管理多个web应用,可以集群化管理多个web应用,有利于cpu资源合理分配;基于热重载策略管理多个web应用,可以实时编译源代码以在线实时更新版本,用户访问页面的用时较短,可以更快速地查看应用,提升了用户体验。
下面分别对两种管理多个web应用的方式进行具体说明。
其一、基于负载均衡策略管理多个web应用
在一些实施例中,基于负载均衡策略管理多个web应用,可以包括:
基于平台和协议中的至少一种,确定目标模块;
基于Node.js cluster模块使用的主子进程方式,采用目标模块对应的应用模式,管理多个web应用。
在该实施例中,平台可以为Windows平台,或者可以为非Windows平台。
协议可以包括IP、TCP、UDP以及HTTP等。
目标模块用于管理多个web应用。
目标模块可以从round_robin_handle.js和shared_handle.js两种模块中确定。
在实际执行过程中,cluster模块可以基于child_process创建子进程,子进程通过复写掉cluster._getServer方法,保证在server.listen只有主进程监听端口,主子进程直接可以基于IPC(Inter-Process Communication)进行通信,主进程可以基于平台和协议中的至少一种,确定目标模块进行请求分发给子进程处理。
根据本申请实施例提供的web应用管理方法,基于平台和协议中的至少一种,确定目标模块,并基于Node.js cluster模块使用的主子进程方式,采用目标模块对应的应用模式管理多个web应用,可以基于不同的平台或协议,选取不同模块对应的应用模式管理多个web应用,适用于多种不同的情况,具有较高的普适性,适用场景较广泛。
在一些实施例中,基于Node.js cluster模块使用的主子进程方式,采用目标模块对应的应用模式,管理多个web应用,可以包括:
在目标模块对应的应用模式为非Windows平台应用模式的情况下,采用轮询处理模式管理多个web应用。
在该实施例中,非Windows平台可以为macOS和Linux等。
目标模块可以为round_robin_handle.js。
在实际执行过程中,在目标模块对应的应用模式为非Windows平台应用模式的情况下,可以基于轮询处理模式管理多个web应用,具体的,可以轮询调度分发给空闲的子进程,在该子进程处理完成后回到worker空闲池子中,在绑定过的情况下,复用该子进程;在没有绑定过的情况下,重新判断。
根据本申请实施例提供的web应用管理方法,在目标模块对应的应用模式为非Windows平台应用模式的情况下,采用轮询处理模式管理多个web应用,实现简单,操作便捷,服务器的负载分布较均衡;且web应用服务不会中断,0秒重启,无需手动输入命令启动node应用,提升了用户体验。
在一些实施例中,基于Node.js cluster模块使用的主子进程方式,采用目标模块对应的应用模式,管理多个web应用,还可以包括:
在目标模块对应的应用模式为Windows平台应用模式的情况下,将文件描述符信息和端口信息中的至少一种传递给子进程;
子进程基于接收到的文件描述符信息和端口信息中的至少一种,创建SocketHandle和ServerHandle中的至少一种;
基于SocketHandle和ServerHandle中的至少一种,进行端口绑定、监听以及处理请求中的至少一种。
在该实施例中,目标模块可以为shared_handle.js。
文件描述符用于表示被打开的文件。
端口可以包括虚拟端口和物理端口中的至少一种。
在实际执行过程中,可以将文件描述符和端口等信息传递给子进程,子进程通过信息创建SocketHandle和ServerHandle中的至少一种,然后进行相应的端口绑定、监听以及处理请求中的至少一种。
根据本申请实施例提供的web应用管理方法,在目标模块对应的应用模式为Windows平台应用模式的情况下,将文件描述符信息和端口信息中的至少一种传递给子进程,然后子进程创建SocketHandle和ServerHandle中的至少一种,再进行端口绑定、监听以及处理请求中的至少一种,实现了对web应用的多线程集群化管理,使得web应用的部署更加简单和高效,提升了用户体验。
其二、基于热重载策略管理多个web应用
在一些实施例中,基于热重载策略管理多个web应用,可以包括:
在浏览器与webpack-dev-server建立WebSocket连接的情况下,在Webpack监听到文件变更后,增量构建发生变更的模块,并通过WebSocket向浏览器发送哈希事件;
浏览器接收哈希事件,请求manifest资源文件,确认增量变更范围,并加载发生变更的增量模块;
在Webpack运行时,触发变更模块的module.hot.accept回调,执行代码变更逻辑。
在该实施例中,WebSocket为基于TCP/IP协议,独立于HTTP协议的通信协议。
热重载策略可以基于webpack-dev-server托管静态资源,同时以Runtime方式注入HMR客户端代码。
在实际执行过程中,在浏览器加载页面之后,浏览器与webpack-dev-server建立WebSocket连接,在Webpack监听到文件变更后,增量构建发生变更的模块,并通过WebSocket向浏览器发送哈希事件,在浏览器接收到哈希事件之后,请求manifest资源文件,确认增量变更范围,浏览器加载发生变更的增量模块,Webpack运行时触发变更模块的module.hot.accept回调,执行代码变更逻辑。
根据本申请实施例提供的web应用管理方法,通过在浏览器加载页面之后,浏览器与webpack-dev-server建立WebSocket连接,在Webpack监听到文件变更后,增量构建发生变更的模块,并通过WebSocket向浏览器发送哈希事件,在浏览器接收到哈希事件之后,请求manifest资源文件,确认增量变更范围,浏览器加载发生变更的增量模块,Webpack运行时触发变更模块的module.hot.accept回调,执行代码变更逻辑,实时编译热重载可以减少用户访问页面的用时,以更加快速地查看应用;同时实现了用户的无感刷新体验,避免了web端缓存和版本更新时,用户需要手动刷新的过程,提高了用户体验。
如图2所示,在一些实施例中,在步骤130之后,该web应用管理方法还可以包括:
基于web应用对应的目标日志,获取web应用对应的运行状况。
在该实施例中,运行状况可以包括CPU使用率、使用的内存以及请求/分钟等。
目标日志可以包括PM2的系统日志和管理的进程日志。
在实际执行过程中,可以将进程的控制台输出记录到日志中,可以在终端中监控应用程序并检查应用程序的运行状况。
根据本申请实施例提供的web应用管理方法,通过直接输出web应用的运行日志和错误信息收集,提高了排错的准确率以及效率。
下面对本申请提供的web应用管理装置进行描述,下文描述的web应用管理装置与上文描述的web应用管理方法可相互对应参照。
本申请实施例提供的web应用管理方法,执行主体可以为web应用管理装置。本申请实施例中以web应用管理装置执行web应用管理方法为例,说明本申请实施例提供的web应用管理装置。
本申请实施例还提供一种web应用管理装置。
如图3所示,该web应用管理装置,包括:第一处理模块310、第二处理模块320和第三处理模块330。
第一处理模块310,用于将目标应用源代码提交至gitlab仓库;目标应用源代码为本地web应用对应的应用源代码;
第二处理模块320,用于基于配置于服务器的git代码版本管理工具,同步gitlab仓库中的目标应用源代码,生成多个web应用;
第三处理模块330,用于基于配置于服务器的node环境,通过PM2管理多个web应用。
根据本申请实施例提供的web应用管理装置,通过将目标应用源代码直接提交至gitlab仓库,然后基于配置于服务器的git代码版本管理工具,同步目标应用源代码,并生成多个web应用,然后基于配置于服务器的node环境,通过PM2对多个web应用进行多线程集群化管理,在应用时无需预先打包和编译,效率较高,耗时较短;且实现了集群化管理多个web应用,提高了自动化部署的效率,降低了管理成本。
在一些实施例中,第三处理模块330还可以用于:基于负载均衡策略和热重载策略中的至少一种,管理多个web应用。
在一些实施例中,该web应用管理装置还可以包括:
第四处理模块,用于基于平台和协议中的至少一种,确定目标模块;
第五处理模块,用于基于Node.js cluster模块使用的主子进程方式,采用目标模块对应的应用模式,管理多个web应用。
在一些实施例中,第五处理模块还可以用于:在目标模块对应的应用模式为非Windows平台应用模式的情况下,采用轮询处理模式管理多个web应用。
在一些实施例中,第五处理模块还可以用于:
在目标模块对应的应用模式为Windows平台应用模式的情况下,将文件描述符信息和端口信息中的至少一种传递给子进程;
子进程基于接收到的文件描述符信息和端口信息中的至少一种,创建SocketHandle和ServerHandle中的至少一种;
基于SocketHandle和ServerHandle中的至少一种,进行端口绑定、监听以及处理请求中的至少一种。
在一些实施例中,该web应用管理装置还可以包括第六处理模块,用于:
在浏览器与webpack-dev-server建立WebSocket连接的情况下,在Webpack监听到文件变更后,增量构建发生变更的模块,并通过WebSocket向浏览器发送哈希事件;
浏览器接收哈希事件,请求manifest资源文件,确认增量变更范围,并加载发生变更的增量模块;
在Webpack运行时,触发变更模块的module.hot.accept回调,执行代码变更逻辑。
在一些实施例中,第二处理模块320还可以用于:
在gitlab仓库中配置自动同步脚本;
基于自动同步脚本,自动同步目标应用源代码;
或者;
接收用户的第一输入,第一输入用于拉取目标应用源代码
响应于第一输入,同步目标应用源代码。
本申请实施例中的web应用管理装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的web应用管理装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为IOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的web应用管理装置能够实现图1至图2的方法实施例实现的各个过程,为避免重复,这里不再赘述。
在一些实施例中,如图4所示,本申请实施例还提供一种电子设备400,包括处理器401、存储器402及存储在存储器402上并可在处理器401上运行的计算机程序,该程序被处理器401执行时实现上述web应用管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述web应用管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述web应用管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
又一方面,本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述web应用管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种web应用管理方法,其特征在于,包括:
将目标应用源代码提交至gitlab仓库;所述目标应用源代码为本地web应用对应的应用源代码;
基于配置于服务器的git代码版本管理工具,同步所述gitlab仓库中的所述目标应用源代码,生成多个web应用;
基于配置于所述服务器的node环境,通过PM2管理所述多个web应用。
2.根据权利要求1所述的web应用管理方法,其特征在于,所述基于配置于所述服务器的node环境,通过PM2管理所述多个web应用,包括:
基于负载均衡策略和热重载策略中的至少一种,管理所述多个web应用。
3.根据权利要求2所述的web应用管理方法,其特征在于,基于所述负载均衡策略管理所述多个web应用,包括:
基于平台和协议中的至少一种,确定目标模块;
基于Node.js cluster模块使用的主子进程方式,采用所述目标模块对应的应用模式,管理所述多个web应用。
4.根据权利要求3所述的web应用管理方法,其特征在于,所述基于Node.js cluster模块使用的主子进程方式,采用所述目标模块对应的应用模式,管理所述多个web应用,包括:
在所述目标模块对应的应用模式为非Windows平台应用模式的情况下,采用轮询处理模式管理所述多个web应用。
5.根据权利要求3所述的web应用管理方法,其特征在于,所述基于Node.js cluster模块使用的主子进程方式,采用所述目标模块对应的应用模式,管理所述多个web应用,还包括:
在所述目标模块对应的应用模式为Windows平台应用模式的情况下,将文件描述符信息和端口信息中的至少一种传递给子进程;
所述子进程基于接收到的所述文件描述符信息和所述端口信息中的至少一种,创建SocketHandle和ServerHandle中的至少一种;
基于所述SocketHandle和所述ServerHandle中的至少一种,进行端口绑定、监听以及处理请求中的至少一种。
6.根据权利要求2所述的web应用管理方法,其特征在于,基于所述热重载策略管理所述多个web应用,包括:
在浏览器与webpack-dev-server建立WebSocket连接的情况下,在Webpack监听到文件变更后,增量构建发生变更的模块,并通过所述WebSocket向所述浏览器发送哈希事件;
浏览器接收所述哈希事件,请求manifest资源文件,确认增量变更范围,并加载发生变更的增量模块;
在所述Webpack运行时,触发变更模块的module.hot.accept回调,执行代码变更逻辑。
7.根据权利要求1-6任一项所述的web应用管理方法,其特征在于,所述同步所述gitlab仓库中的所述目标应用源代码,包括:
在所述gitlab仓库中配置自动同步脚本;
基于所述自动同步脚本,自动同步所述目标应用源代码;
或者;
接收用户的第一输入,所述第一输入用于拉取所述目标应用源代码
响应于所述第一输入,同步所述目标应用源代码。
8.一种web应用管理装置,其特征在于,包括:
第一处理模块,用于将目标应用源代码提交至gitlab仓库;所述目标应用源代码为本地web应用对应的应用源代码;
第二处理模块,用于基于配置于服务器的git代码版本管理工具,同步所述gitlab仓库中的所述目标应用源代码,生成多个web应用;
第三处理模块,用于基于配置于所述服务器的node环境,通过PM2管理所述多个web应用。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的web应用管理方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一项所述的web应用管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310580740.6A CN116521221B (zh) | 2023-05-22 | web应用管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310580740.6A CN116521221B (zh) | 2023-05-22 | web应用管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116521221A true CN116521221A (zh) | 2023-08-01 |
CN116521221B CN116521221B (zh) | 2024-06-07 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445839A (zh) * | 2018-09-25 | 2019-03-08 | 平安普惠企业管理有限公司 | 一种模块管理包发布方法、装置及终端设备 |
CN111177618A (zh) * | 2019-12-17 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 网站搭建方法、装置、设备及计算机可读存储介质 |
US20200341752A1 (en) * | 2019-04-26 | 2020-10-29 | Samsung Electronics Co., Ltd. | Electronic apparatus and method for controlling thereof |
CN112799716A (zh) * | 2021-02-09 | 2021-05-14 | 广州锦行网络科技有限公司 | 一种代码管理方法及系统 |
CN114676371A (zh) * | 2022-04-06 | 2022-06-28 | 广州博冠信息科技有限公司 | 页面的元素信息替换方法、装置、计算机设备及存储介质 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445839A (zh) * | 2018-09-25 | 2019-03-08 | 平安普惠企业管理有限公司 | 一种模块管理包发布方法、装置及终端设备 |
US20200341752A1 (en) * | 2019-04-26 | 2020-10-29 | Samsung Electronics Co., Ltd. | Electronic apparatus and method for controlling thereof |
CN111177618A (zh) * | 2019-12-17 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 网站搭建方法、装置、设备及计算机可读存储介质 |
CN112799716A (zh) * | 2021-02-09 | 2021-05-14 | 广州锦行网络科技有限公司 | 一种代码管理方法及系统 |
CN114676371A (zh) * | 2022-04-06 | 2022-06-28 | 广州博冠信息科技有限公司 | 页面的元素信息替换方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
曹文彬 等: "基于事件驱动的高性能WebSocket服务器的设计与实现", 计算机应用与软件, vol. 35, no. 1, pages 27 - 33 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shiraz et al. | A study on the critical analysis of computational offloading frameworks for mobile cloud computing | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
CN109218356B (zh) | 管理服务器上有状态应用的方法和设备 | |
CN112988346B (zh) | 任务处理方法、装置、设备及存储介质 | |
CN111400000A (zh) | 网络请求处理方法、装置、设备和存储介质 | |
CN111488220A (zh) | 一种启动请求处理方法、装置和电子设备 | |
CN103677970A (zh) | 实现终端本地桌面和远端虚拟桌面合并显示的系统和方法 | |
US20170147483A1 (en) | Tracking asynchronous entry points for an application | |
CN114296953A (zh) | 一种多云异构系统及任务处理方法 | |
EP1949228B1 (en) | Asynchronous just-in-time compilation | |
Gallidabino et al. | The Liquid WebWorker API for Horizontal Offloading of Stateless Computations | |
CN116521221B (zh) | web应用管理方法和装置 | |
CN110955461B (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
KR20130068564A (ko) | 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법 | |
CN116521221A (zh) | web应用管理方法和装置 | |
CN110209466A (zh) | 资源配置方法、资源配置装置及存储介质 | |
CN111176714B (zh) | 软件系统开发方法、装置、终端设备及存储介质 | |
CN114385351A (zh) | 云管理平台负载均衡性能优化方法、装置、设备、介质 | |
CN110768855B (zh) | 链路化性能测试的方法和装置 | |
CN109657179B (zh) | 一种业务处理方法、系统及存储介质 | |
CN111124907A (zh) | 一种手机游戏测试方法、装置和服务器 | |
CN107623704B (zh) | 终端设备中的数据交互方法、客户端及浏览器 | |
CN105763640B (zh) | 一种云计算环境下的虚拟机管控系统 | |
Bartolomeo et al. | Characterizing distributed mobile augmented reality applications at the edge | |
CN109561146A (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 |