我正在尝试为运行在play框架上的Web应用程序制定最佳工作流程。
我使用start
脚本启动它,但是更新代码的最佳实践是什么,以便对用户来说尽可能无缝?
在一个Apache + PHP应用程序中,通常只需将新的*.php文件放置在目录中,在许多情况下,用户甚至不会注意到更改。
你能分享一下你使用play框架进行更新的工作流程吗?
我正在尝试为运行在play框架上的Web应用程序制定最佳工作流程。
我使用start
脚本启动它,但是更新代码的最佳实践是什么,以便对用户来说尽可能无缝?
在一个Apache + PHP应用程序中,通常只需将新的*.php文件放置在目录中,在许多情况下,用户甚至不会注意到更改。
你能分享一下你使用play框架进行更新的工作流程吗?
Play框架与在Apache上使用PHP非常不同。当用户请求页面时,Apache会解释PHP。因此,您只需要更改文件即可更新站点。然而,对于Java(除非您使用.jsp文件,有时甚至不是这样),代码是按字节编译的,Web服务器需要在启动时加载它及其库。这意味着仅替换新编译的文件将无效。您需要重新启动Web容器或使其重新加载应用程序以获取更改。这始终会被任何尝试同时访问站点的用户注意到。
您可以拥有一个Web服务器(不一定是Apache),将其指向当前的Play安装作为代理,并并行启动其新版本,然后将代理Web服务器指向新版本并关闭旧版本。这可能是最简单的方法,可以进行脚本化。
另一种方法是只需拥有一个Web应用程序,将用户重定向到该应用程序并执行类似于上述操作的并行更改。
这两个选项都需要一些设置和编码才能使它们无缝运行。但是,这项工作可能是值得的,因为一旦您设置好了,将来的生产部署变得非常容易。