我有一个构建应用程序的 Jenkins 项目,然后,如果成功,将应用程序复制到我们的测试环境并重新启动 Tomcat 服务器。Tomcat 启动大约需要 90 秒。如何自动和/或以编程方式检查 Tomcat 启动是否成功,以便触发部署到我们的暂存环境?我们有一个我可以监控的监控 URL,但我不知道如何在 Jenkins 中实现它。
问问题
217 次
2 回答
1
创建一个 ant scriptlet,并将两件事放入并行任务中:
- 使用exec任务启动 Tomcat
- 一个带有套接字侦听器的条件元素,用于在waitfor内的 tomcat 的 http 端口。您可以定义 timout 属性,如果它是在 waitfor 之后定义的,您可以使用fail来使构建失败。要检查该属性,您可以简单地创建一个带有条件运行的子目标,在等待之后您可以调用它。
所以是这样的:
<target name="runCheckedTomcat">
<parallel>
<sequential>
<echo>Tomcat starts</echo>
<exec command="start.bat" dir="tomcatdir">
</exec>
</sequential>
<sequential>
<waitfor timeoutproperty="timeout" maxwait="15" maxwaitunit="second">
<socket server="localhost" port="8080"/>
</waitfor>
<antcall target="fail"/>
</sequential>
</parallel>
</target>
<target name="fail" if="timeout">
<fail message="Tomcat is not started in time"/>
</target>
于 2012-10-20T22:18:31.897 回答
1
我只是通过在 Jenkins 中设置一个执行以下命令的简单 exec-job 来解决这个问题。
curl -f -m 120 -o /dev/null -s -S http://example.org:8080/application
于 2012-10-22T10:30:55.343 回答