我有一个春天的启动项目。我远程部署我的项目作为在tomcat的一个罐子。我在远程服务器上运行该脚本部署的jar:
#!/ bin / sh的
/usr/local/java8/jdk1.8.0_71/bin/java罐子-Duser.timezone =欧洲/雅典example.jar> log.out
整个项目工作正常,但有时Web服务没有我做的事情或者具有调度要求他们自动调用。
例如在我的控制器类中的方法
@RequestMapping(value = "/heartbeat")
public ResponseEntity<String> heartbeat() {
Log.info("heartbeat");
return new ResponseEntity<>("success", org.springframework.http.HttpStatus.OK);
}
当项目被远程部署,我可以从这种方法获取调用每分钟的日志中看到,即使没有人在呼唤它:
19年2月5日15:23:22.721 INFO HTTP-NIO-8044-EXEC-9的TestController:238 - 心跳
19年2月5日15:24:22.133 INFO HTTP-NIO-8044-EXEC-1的TestController:238 - 心跳
19年2月5日15:25:22.426 INFO HTTP-NIO-8044-EXEC-8的TestController:238 - 心跳
19年2月5日15:26:22.782 INFO HTTP-NIO-8044-EXEC-7的TestController:238 - 心跳
19年2月5日15:27:22.179 INFO HTTP-NIO-8044-EXEC-5的TestController:238 - 心跳
在我的POM和属性我不能找到相关的调度。还没有我的控制器方法被注解为@Scheduled。有任何想法吗?
application.properties
management.context-path=/internal/manage
management.security.enabled=false
endpoints.health.id = health
endpoints.health.sensitive = true
endpoints.health.enabled = true
endpoints.info.id=info
endpoints.info.sensitive=false
endpoints.info.enabled=true
info.app.name=Test app name
info.app.description=Test project
endpoints.actuator.enabled=true
spring.application.admin.enabled=true
endpoints.hypermedia.enabled=true
management.info.git.mode=full
它可以一kubernetes活力探测器,如果最终点/心跳配置为生动活泼探头,kubernetes投票结束点在每一个配置的时间间隔来检查服务是否还活着。你的情况,这是一个分钟。
如果你不是在kubernetes环境,终点可通过监控系统调用来检查健康。
使用/internal/manage/trace.json终点后,我发现,Web服务是由heatlh状态工具调用。我只是不知道我们使用这个工具。