0

除了推送到 git 的开发和营销更改之外,Tooltwist 控制器继续在 Web 服务器中安装新包的其他可能原因是什么。

据观察,即使 Jenkins 检测到 git 中没有进行任何更改,但在传输阶段仍会安装新的包。

(参考:使用 Jenkins 1.462 和 ToolTwist 控制器版本 8.0.2.20130510)。

日志: Starting installation at Wed Aug 27 18:57:21 EDT 2014 fip /ControllerV8/launchpads/xxxxx-prod-servers/image xxx.domain.com:3YXY3/$HOME/server/ Bundle 1 (8.87mb = 53 installs, 0 deletes) Bundle 2 (8.95mb = 53 installs, 0 deletes) Bundle 3 (8.86mb = 53 installs, 0 deletes) Bundle 4 (8.94mb = 53 installs, 0 deletes) Bundle 5 (8.96mb = 52 installs, 0 deletes)

4

1 回答 1

1

Controller 在部署前执行两个操作:

  1. 从 Git 拉取源代码后构建应用程序。
  2. 生成导航点 JSP

除非您的源代码发生更改,否则第一步不应导致文件被部署。

然而,在第二步中,JSP 文件是由应用程序中的小部件生成的,并且可能会随小部件的变化而变化。为了使网页在生产中尽可能快地运行,HTML 内容通常由基于数据库内容(使用产品价格等)的小部件生成。对于涉及不会逐秒更改的数据的页面内容,这种性能节省是显着的。

这种机制允许主页、类别和登录页面几乎是静态的——它们运行得很快,因为它们需要很少或不需要数据库访问。数据库访问和内容创建在生成时完成,通常每十五分钟一次,而不是在用户访问网页时每秒数百次。

因此,如果您的小部件是动态的并根据不断变化的数据生成 HTML,那么即使源代码保持不变,控制器也可能有许多更改的文件要部署到生产环境中。同样,如果小部件出于任何原因决定在每次运行 Controller 时生成不同的代码,那么 Controller 也将更改要部署的文件。

要确定每次部署哪些文件,请查看 FIP(文件安装协议)使用的隐藏文件。它们可以由前缀标识.fip-,并且应该在控制器和部署的服务器上记录传输。

但是请注意,即使 Web 内容保持完全相同,控制器也会将时间戳放入已部署的文件之一(或可能是 jar)中,因此始终需要部署该文件。我不记得它的名字了,但它会一直存在于 FIP 日志中。

于 2014-08-28T08:35:38.300 回答