一种基于云的前端动态加载资源文件的方法与流程

文档序号:32944714发布日期:2023-01-14 10:15阅读:29来源:国知局
一种基于云的前端动态加载资源文件的方法与流程

1.本发明涉及云计算环境下前端项目的开发、部署、angular前端框架、定时任务、config-service环境变量读取、前端监听等领域,尤其涉及一种基于云的前端动态加载资源文件的方法。


背景技术:

2.在云计算、大数据背景下,angular框架在前端研发中使用的越来越广泛,公有云环境中使用k8s部署应用也越来越广泛。而项目中所使用的环境变量将会被部署到configmap中,项目中使用哪一个变量,会读取configmap中相应的变量。但在现有技术中,为了方便管理项目中使用的环境变量,并且不影响项目使用的前提下,都会把环境变量写在项目的application文件中,或者部署到configmap中。如果项目中使用的变量需要修改,这时仅仅修改环境变量文件是不够的,还需要重新启动项目,或者重新启动容器,重启过程中,云服务产品会不可使用,给用户再来很大的不便。


技术实现要素:

3.为了解决以上技术问题,本发明提供了一种基于云的前端动态加载资源文件的方法。使用动态加载资源文件的方法,在开发中有效的节省开发中修改环境变量而导致的项目重启时间;在公有云环境上,方便研发人员对项目中所使用的常量进行修改,也方便运维人员对项目的环境变量进行维护。
4.本发明的技术方案是:
5.一种基于云的前端动态加载资源文件的方法,动态加载资源文件中的环境变量,即项目中读取环境变量,当环境变量被修改时,项目会动态加载新的环境变量应用到项目,并且项目无需重启,保证服务正常运行,达到无感知更新的操作。
6.用户在使用服务的时候,在环境上修改变量,由项目动态加载,使项目中的环境变量改变,提供给客户使用,并且客户未察觉系统有过变动,服务保证一直可用。
7.进一步的,
8.使用监控脚本,对项目中的所有资源文件进行监控,如果有变动,则自动重新读取文件中的环境变量到项目中,或者重新加载枚举对象到项目中。使用定时任务,创建定时任务按照设定时间去加载资源文件。
9.再进一步的,
10.在chart中创建资源文件,将需要使用的环境变量写在资源文件中,将项目使用的常量或者枚举值写在相对应的目录下的文件中;在项目中创建环境变量类文件,其变量与环境变量资源文件中相对应;在项目中创建枚举类文件;在项目中引入加载资源文件ts文件,项目初始化app-init.ts文件中引入该文件,在初始化方法中读取资源文件中的变量到项目中,创建监听器,检测资源文件是否发生变更,如发生变更,则重新加载资源文件;
11.用流水线将前端项目制作成docker镜像;在k8s上使用准备好的chart部署前端
docker镜像,项目自动加载chart中的资源文件到项目中,如需修改文件中的变量,可直接修改,项目中会检测到资源文件变动,并重新加载。
12.再进一步的,
13.项目修改具体流程如下:
14.(1)在项目中创建environment.ts文件,并在environment.ts文件中创建需要使用的环境变量;
15.(2)在项目中创建项目中使用的枚举对象文件,并在文件中创建项目中使用的对象;
16.(3)在项目中创建application.json文件,并在文件中写入环境变量和值,用来本地调试项目所使用;
17.(4)在项目中创建config-service.ts文件,文件中写入读取资源文件的方法,用来读取上述文件中的变量,方法中添加判断分支:如果是本地调试项目,则读取同项目中创建的application.json文件中的变量的值;如果是公有云运行的项目,则读取configmap中创建环境变量的值;
18.(5)在项目初始化文件app-init.ts中,添加使用步骤(4)中读取资源文件的方法,用来将chart中的环境变量读取到项目中,并将其中的变量值赋给environment对象中,将枚举对象或者项目中使用的其他对象赋值给枚举对象;如果读取不到,则使用文件中变量的默认值;
19.(6)在项目中创建监控文件,写入监控资源文件变动的方法,用来持续监控环境中资源文件configmap中变量的变动;
20.(7)在项目初始化文件app-init.ts中引入监控ts文件,并在init方法中使用监控方法,持续监控资源文件;如果资源文件有变动,则重新加载文件中的变量到项目对象中,并记录更新到session中;
21.(8)在项目中创建定时任务ts文件,按照设定时间段取自动获取一次资源文件中的环境变量;
22.(9)在项目初始化文件app-init.ts中init方法中,启动定时任务,并设置定时任务执行周期时间,防止资源文件被修改后没有更新到项目中,并记录更新时间,以便调试或者维护时使用。
23.chart修改步骤:
24.(1)修改chart项目的configmap文件,在文件中创建环境变量并添加值;
25.(2)在configmap中创建项目中所使用的变量,或者枚举对象,并将所需要的值添加到文件中。
26.操作流程如下:
27.(1)查看公有云环境是否正常;
28.(2)使用流水线将项目制作成docker镜像;
29.(3)使用chart部署前端项目到环境;
30.(4)查看项目中读取的环境变量以及枚举对象中的值是否正确,是否是读取资源文件中的变量值;
31.(5)修改项目的configmap中的环境变量,并且在项目中查看该环境变量是否是修
改后的值;
32.(6)修改项目的configmap中枚举对象中已使用key所对应的值,并且查看前端页面,修改的枚举值是否被更新;
33.(7)设置定时任务周期,(测试时可设置为60分钟以下,正式环境上大于60分钟)等到定时任务触发之后,查看日志,或者查看session中的最新加载资源文件的时间,是否为定时任务触发事件。
34.本方法利用集中管理资源文件,项目对资环文件进行集中加载,实现项目中对环境变量维护和项目中使用的枚举对象维护便利的目的。
35.本方法使用监控脚本,对项目中的所有资源文件进行监控,如果有变动,则自动重新读取文件中的环境变量到项目中,或者重新加载枚举对象到项目中;实现了动态加载环境变量资源文件的目的。
36.使用定时任务,创建定时任务按照一定时间去加载一次资源文件,实现防止资源文件未及时更新的目的。
37.本发明的有益效果是
38.在公有云环境上动态加载资源文件中的环境变量,保证在资源文件修改之后,项目中的环境变量会被重新加载,并且保证定时加载,以防止文件修改之后没有被更新到项目中。
附图说明
39.图1是本发明的项目修改步骤示意图;
40.图2是本发明的使用步骤示意图。
具体实施方式
41.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.本发明针对部署在公有云环境上的前端项目,基于angular框架实现的动态加载资源文件的方法。
43.前提条件:
44.(1)公有云环境中的需要部署的前端项目运行正常。
45.(2)准备公有云环境中需要部署项目的chart包。
46.(3)前端项目部署的公有云环境正常。
47.具体步骤:
48.(一)项目修改步骤:具体流程见图1:
49.(1)在项目中创建environment.ts文件,并在environment.ts文件中创建需要使用的环境变量。
50.(2)在项目中创建项目中使用的枚举对象文件,例如status.ts,并在文件中创建项目中使用的对象。
51.(3)在项目中创建application.json文件,并在文件中写入环境变量和值,用来本地调试项目所使用。
52.(4)在项目中创建config-service.ts文件,文件中写入读取资源文件的方法,用来读取上述文件中的变量,方法中添加判断分支:如果是本地调试项目,则读取同项目中创建的application.json文件中的变量的值;如果是公有云运行的项目,则读取configmap中创建环境变量的值。
53.(5)在项目初始化文件app-init.ts中,添加使用(4)中读取资源文件的方法,用来将chart中的环境变量读取到项目中,并将其中的变量值赋给environment对象中,将枚举对象或者项目中使用的其他对象赋值给枚举对象(例如status.ts);如果读取不到,则使用文件中变量的默认值。
54.(6)在项目中创建监控文件,写入监控资源文件变动的方法,用来持续监控环境中资源文件configmap中变量的变动。
55.(7)在项目初始化文件app-init.ts中引入监控ts文件,并在init方法中使用监控方法,持续监控资源文件。如果资源文件有变动,则重新加载文件中的变量到项目对象中,并记录更新到session中。
56.(8)在项目中创建定时任务ts文件,按照一定时间段取自动获取一次资源文件中的环境变量。
57.(9)在项目初始化文件app-init.ts中init方法中,启动定时任务,并设置定时任务执行周期时间,防止资源文件被修改后没有更新到项目中,并记录更新时间,以便调试或者维护时使用。
58.(二)chart修改步骤:
59.(1)修改chart项目的configmap文件,在文件中创建环境变量并添加值。
60.(2)在configmap中创建项目中所使用的变量,或者枚举对象,并将所需要的值添加到文件中。
61.(三)使用步骤:具体流程见图2
62.(1)查看公有云环境是否正常。
63.(2)使用流水线将项目制作成docker镜像。
64.(3)使用chart部署前端项目到环境。
65.(4)查看项目中读取的环境变量以及枚举对象中的值是否正确,是否是读取资源文件中的变量值。
66.(5)修改项目的configmap中的环境变量,并且在项目中查看该环境变量是否是修改后的值。
67.(6)修改项目的configmap中枚举对象中已使用key所对应的值,并且查看前端页面,修改的枚举值是否被更新。
68.(7)设置定时任务周期,例如60分钟(测试时可设置为较短时间,正式环境上建议最少设置为60分钟),等到定时任务触发之后,查看日志,或者查看session中的最新加载资源文件的时间,是否为定时任务触发事件。
69.本发明可动态加载资源文件中的环境变量;项目中读取环境变量,当环境变量被修改时,项目会动态加载新的环境变量应用到项目,并且项目无需重启,保证服务正常运
行,达到无感知更新的操作。用户在使用服务的时候,在环境上修改变量,由项目动态加载,使项目中的环境变量改变,提供给客户使用,并且客户未察觉系统有过变动,服务保证一直可用,达到无感知更新的操作。
70.以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1