程序在运行中,如何实现在线升级?

程序在运行中,如何实现在线升级?,第1张

1.一种针对分布式部署服务软件程序的在线升级方法,其特征在于,包括如下步骤:S101.将服务软件程序拆分为若干个应用子程序,然后升毁将各个应用子程序分别以Docker应用容器的形式一一对应地运行在目标服务器中,其中,所述目标服务器预先安装有Docker应用容器引擎和Jenkins终端软件程序;S102.登录Jenkins服务器,并新建在线监控项目,在该在线监控项目中配置从程序版本管理服务器拉取升级程序代码的第一参数;S103.登录程序版本管理服务器,设置关联Jenkins服务器的第二参数;S104.程序版本管理服务器在收到来自软件开发端的服务软件程序升级包后,向Jenkins服务器发送程序升级 *** 作请求消息,其中,所述服务软件程序升级包封装有以应用子程序名命名的升级程序代码,所述程序升级 *** 作请求消息包含有在所述服务软件程序升级包中的所有应用子程序名;

S105.Jenkins服务器在收到所述程序升级租余 *** 作请求消息后,针对与所述应用子程序名对应的目标服务器,触发远程构建任务,并通过运行在该目标服务器的Jenkins终端软件程序,将从程序版本管理服务器拉取的且与所述应用子程序名对应的升级程序代码传送至该目标服务器;

S106.目标服务器在收到完整的升级程序代码后,启动Maven程序包,将该升级程序代码封装为Maven容器;S107.目标服务器将所述Maven容器的镜像推送到本地Docker私有库中,完成对与所述应用子程序名对应的Docker应用容器镜像的更新;S108.关机重启目标服务器,启动Docker应用弊笑滚容器引擎,从所述Docker私有库中获取与所述应用子程序名对应的Docker应用容器镜像,然后重新以Docker应用容器的形式运行应用子程序,完成在线升级。

2、使用Http在线自动升级程序。

在VCKBase看到一个是使用FTP的,想到FTP需要用户名密码,许多程序如KFW防火墙都能监看到程序发送的数据包,为防止密码泄露,故自己选用Http来做更新。我的思路是用命令行传递程序名称、版本号和Update.ini配置文件的URL。

然后是查找可用的更新,先通过ChttpFile将Update.INI文件下载到系统临时目录下,然后调用GetPrivateProfileString读取网上最新的版本号以及要更新的文件,判断是否需要更新

1你有网站放祥逗升级文件

2程序分块制作,小更新就更新谨知卖组件,大更新就自动重装

3

有更新功能

设定打开时检测版本,或定时检测,有高版本就猛派提示更新

我原渣启带来写的一个自动升级程序,是在服务器站用了一个.ini文件,记录.exe的版本号,然后使用URLDownloadToFile下载到本地,然后与本地文件进行对比,如果版本号不一样,再使用URLDownloadToFile下载.exe文件到本旁消地

Public Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Public Declare Function DeleteUrlCacheEntry Lib "wininet" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long

'/************************************************************************************/

'/函数功能:从服务器下载文件

'/参数说明:参数一 服务器文件路径,本地文件路径

'/编 写 人:于莹莹

'/编写日期:2007-8-28

'/************************************************************************************/

Public Function DownloadFile(url As String, LocalFilename As String) As Boolean

Dim lngRetVal As Long

lngRetVal = URLDownloadToFile(0, url, LocalFilename, 0, 0)

If lngRetVal = 0 Then

DownloadFile = True

DeleteUrlCacheEntry url

End If

End Function

使用方法:

DownloadFile "http://zhidao.baidu.com/question/66811350.html", "d:\66811350.html"

用URLDownloadToFile如果不理想,可以使如芦用控制的异步下载,那个网上有一些代码,我不怎么会


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8280753.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存