我使用Linux / upstart来启动我的jar。 我是这样做的:
有几个问题:
答案 0 :(得分:0)
您的问题由几部分组成,让我分别回答。
您说得对,替换jar文件不是一个好主意。您最好备份文件(将其复制到backup
目录中),而不是仅仅覆盖它。
如果您真的对启动时间和停机时间间隔感到好奇,可以使用多种选择。首先,要维护一个具有多个工作节点和一个代理的布局,该代理在它们之间分配传入的请求。因此,您更新了第一个节点,当它脱机时,所有请求都转到第二个节点。然后更新第二个就可以了。但这要求您首先获得一些操作技能。
第二个选项是,您执行热代码重新加载。简要地说,在生产服务器上公开一个nREPL端口。然后,您可以从Emacs或任何其他编辑器连接到它,打开一个更新的名称空间,然后按C-c C-k
来评估远程计算机上的整个名称空间。结果,您可以在运行时更新代码,而无需重新启动计算机。但是请记住,更改将不会在重新加载后保存。
一个小提示,您最好使用Ansible自动化该过程。它是您在YAML文件中声明操作的工具。结果将是一组看起来简单易维护的指令。 Ansible考虑了很多事情。例如,当您尝试覆盖文件时,它可以自动创建备份。