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