Jenkins重构失败解决

发现jenkins重构多次后,部署到远程tomcat的时候要么undeploy 失败,要么deploy失败,这时需要删除远程tomcat的webapps下面的core.war core文件并重启才会重构成功,针对这种情况,进行优化.

整体思路是在jenkins build成功后,ssh 到远程tomcat主机,将远程tomcat进行重启并删除webapps下面的core 包。 随后让jenkins 的deploy 插件去部署jar包,这样成功率会变高。 下面介绍下这个过程遇到的问题。

1.     远程Tomcat重新启动过慢

  

查看日志发现扫描jar包过慢,耗时2mins左右。在context配置文件里面添加参数即可解决。

但还是发现过慢,不能接受,发现是tomcat一个加密过慢,耗时将近五分钟。

 

通过google发现两个解决办法,一个是修改catalina.sh 的参数,一个是直接修改java的security文件的参数,推荐使用第二种,第一种貌似没什么用,虽然时间也少了点。

现在 tomcat 启动不到1000ms , 即不到1s,满足需求.;

2.     远程执行ssh脚本,需要设置JAVA_HOME环境变量,脚本读取不到系统的PATH。

所以在脚本中增加一句设置环境变量,如图.

  

 

后面附赠脚本和参考链接:

   http://www.jianshu.com/p/b09f2a88897f   tomcat启动慢解决

  

  #!/bin/bash

# 重启tomcat 并且 删除 webapps 的war包 author : wwl date :2017.12.09

exportJAVA_HOME="/usr/java/jdk1.8.0_121"

pid=`ps-ef | grep /usr/local/apache-tomcat-8.0.41/ | grep -v grep | awk '{print $2}'`

echo"need to be killed pid is : $pid"

kill -9$pid

echo '进入webapps下删除war包'

cd/usr/local/apache-tomcat-8.0.41/webapps/ && rm -rf core core.war

cd ../bin

./startup.sh

echo'sleep 3s'

sleep 3s

newpid=`ps-ef | grep /usr/local/apache-tomcat-8.0.41/ | grep -v grep | awk '{print $2}'`

echo"newpid $pid"

if test"$newpid"

then

     echo "213tomcat restart success, pidis : $newpid"

     exit

else

     echo 'failed to restart'

     exit 1

fi


猜你喜欢

转载自blog.csdn.net/qq_16257883/article/details/80213569