Deployment 生产中更新playframework应用程序的最佳工作流

Deployment 生产中更新playframework应用程序的最佳工作流,deployment,playframework,playframework-2.0,workflow,Deployment,Playframework,Playframework 2.0,Workflow,我正试图想出一个最佳的工作流程来更新运行在play framework上的web应用程序 我使用start脚本来启动它,但是更新代码的最佳实践是什么,以便用户尽可能无缝地使用它 在Apache+PHP应用程序中,在目录中删除新的*.PHP文件就足够了,在许多情况下,用户甚至不会注意到更改 您可以与play framework共享您的工作流程吗?play framework与在apache上使用php之类的东西非常不同。当用户请求页面时,Apache会解释Php。因此,您所需要做的就是更改文件以更

我正试图想出一个最佳的工作流程来更新运行在play framework上的web应用程序

我使用
start
脚本来启动它,但是更新代码的最佳实践是什么,以便用户尽可能无缝地使用它

在Apache+PHP应用程序中,在目录中删除新的*.PHP文件就足够了,在许多情况下,用户甚至不会注意到更改


您可以与play framework共享您的工作流程吗?

play framework与在apache上使用php之类的东西非常不同。当用户请求页面时,Apache会解释Php。因此,您所需要做的就是更改文件以更新站点。但是,对于java(除非您使用.jsp文件,甚至有时使用),代码是按字节编译的,Web服务器需要在启动时加载它及其库。这意味着仅仅替换新编译的文件是行不通的。您需要重新启动web容器,或者让它重新加载应用程序以获取更改。在重新加载完成的同时尝试访问站点的任何用户都会注意到这一点

您可以有一个web服务器(不必是Apache),它作为代理指向您当前的play安装,并并行启动它的新版本,然后将代理web服务器指向您的新版本并关闭旧版本。这可能是最简单的方法,可以编写脚本

另一种方法是使用一个web应用程序,将用户重定向到该应用程序,并执行类似于上面所述的并行更改


这两个选项都需要一些设置和编码,才能使它们无缝地工作。但是,这项工作可能是值得的,因为一旦您将it安装卷展到生产环境中,就变得非常简单。

您是否阅读了播放文档中的-部分,或者这不是您想要的?当然,这是某种解决方案,但我目前不使用Apache作为代理。如果这是唯一的选项,并且只能使用内置的play服务器无法完成,我会选择Apache。如果没有前端HTTP服务器,就我所知,您几乎只能执行以下操作:
ctrl
+
d
并重新运行
play start
。要使它真正无缝,您需要Apache、Nginx。。。但是,如果您的应用程序需要很长时间来编译,您可以运行一个基本的Play应用程序,该应用程序显示一个正在构建的
页面,而您的另一个主应用程序正在编译。@Aerus很高兴听到一个真正的部署解决方案。用于生产。在哪里构建,将什么工具上载到服务器,哪个脚本解压并启动应用程序的第二个实例。提供手动部署解决方案。不是最好的。希望你同时找到了解决办法。我想一个好的解决方案是构建一个war并在应用服务器上部署您的play应用程序。还是这太过分了?