Spring启动应用程序通过json中的resttemplate进行定期发布请求

时间:2018-08-20 00:49:24

标签: spring spring-mvc spring-boot resttemplate

下面是我的春季启动代码段,每隔几分钟将json数据发布到服务器url,以告诉我我还活着并正在运行(它将json输入数据加载到db)。此发布请求的目的是更新应用程序监视工具上的状态。

在我的Spring Boot应用程序中实现此行为的正确方法是什么?他们的装饰器api是否对URL进行这样的发布请求,在整个应用程序中每隔几分钟就执行一次?我怎样才能知道成功发出请求的时间来进行下一次请求?请帮我。预先感谢。

RestTemplate restTemplate = new RestTemplate();
String url = "endpoint url";
String requestJson = "{\"I am alive\":\"App name?\"}";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

HttpEntity<String> entity = new HttpEntity<String>(requestJson,headers);
String answer = restTemplate.postForObject(url, entity, String.class);
System.out.println(answer);

1 个答案:

答案 0 :(得分:0)

您为什么不使用@Scheduled annotation?每3分钟就会发出一次ute请求。

@Component
public class Heartbeater {

    @Scheduled(fixedDelay = 180000)
    public void heartbeat() {
        // Your code is below...
        RestTemplate restTemplate = new RestTemplate();
        String url = "endpoint url";
        String requestJson = "{\"I am alive\":\"App name?\"}";
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);

        HttpEntity<String> entity = new HttpEntity<String>(requestJson,headers);
        String answer = restTemplate.postForObject(url, entity, String.class);
        System.out.println(answer);
}