0
我想在Spring Boot中遇到以下用例。Spring Boot http请求长轮询
- 我有第三方REST API,如果有什么要返回或需要10秒发送空白响应,它会返回一个响应asap。
- 我需要不断调用这个API意味着如果API返回响应发送该响应来处理并再次调用该API意味着我需要长时间轮询该API,但是一旦我得到响应就不需要时间间隔再次轮询。
- 我想要独立的线程处理响应。
- 这不是一个Web应用程序。我只想用纯java(spring)而不是java脚本或JQuery来实现它。
我如何在Spring Boot中实现这一点。我读了关于彗星和气氛,而谷歌搜索,但没有具体的信息 或有关第三方HTTP请求轮询的示例代码,或者可能是我缺少的东西。
可能是我正在寻找像卡夫卡消费者客户端的解决方案。
更新
我已经与Java定时器如下尝试这样做,你可以建议,如果有任何其他更好的办法。
public void pollMsg(){
Timer timer = new Timer();
TimerTask myTask = new TimerTask() {
@Override
public void run() {
CompletableFuture.supplyAsync(this::sendMsg).thenAccept(this::notify);
}
private <String> java.lang.String sendMsg() {
RestTemplate restTemplate = new RestTemplate();
java.lang.String msg = restTemplate.getForObject("http://example.com", java.lang.String.class);
return msg;
}
private <String> void notify(java.lang.String msg) {
System.out.println("Process this message for further: " + msg);
run();
}
};
timer.schedule(myTask, 1000, 2000);
}
我已经更新的问题
对我来说很好 – Antoniossss