现在重启都是直接kill 进程id, 然后再启动java 项目。这种容易出现请求处理了一部分,然后被强制关闭掉,可能造成数据错乱。
项目使用nginx代理,部署在centos, 整理了一个脚本 ,先把nginx端口映射到其他端口上,然后过10秒再重启项目,最好再把nginx端口映射回去。这样留点时间给程序处理请求。脚本如下。
#!/bin/bash `sed -i -e 's/127.0.0.1:8081/127.0.0.1:7777/g' /etc/nginx/nginx.conf` `nginx -t` `nginx -s reload` sleep 10 ###重启app sleep 10 `sed -i -e 's/127.0.0.1:7777/127.0.0.1:8081/g' /etc/nginx/nginx.conf` `nginx -t` `nginx -s reload`
这种会造成项目停止服务近1分钟 。
请问有其他优雅点的重启方式吗?
项目:JFinal