亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從遠程服務獲取數據哪種方式更好

從遠程服務獲取數據哪種方式更好

慕哥9229398 2021-06-24 18:10:37
我知道有很多方法可以GET從遙控器獲取數據。我嘗試過這些不同的類型:使用curl內的Runtime.getRuntime().exec(...)或new ProcessBuilder(...).start();使用庫作為URL或RestTemplate;在使用其中之一之前,我們應該考慮它們之間是否存在一些顯著差異?更新 #0為什么我會問這個看似主題過于寬泛或基于意見的問題?我遇到使用問題,ProcessorBuilder在高并發系統中,會有一些TimeOut同時使用RestTemplate,有沒有?在挖掘和調試之后,我沒有發現與結果完全相關的內容,我問了這個問題以了解我可能忽略了什么。 List<CompletableFuture<GrafanaDashboard>> futureList = dbList.stream()            .map(boardName -> CompletableFuture.supplyAsync(() -> GrafanaRetriever                    .parseDashboard(apiUrl, tokenString, boardName), Executors.newCachedThreadPool()))            .collect(Collectors.toList());    for (CompletableFuture<GrafanaDashboard> completableFuture : futureList) {        try {            dashboards.add(completableFuture.get(30, TimeUnit.SECONDS));            // using ProcessorBuilder, it will hang here and some might time out (not all just some)           // using RestTemplate, it will not wait almost, just smooth and no time out at all;        } catch (ExecutionException | InterruptedException | TimeoutException e) {            log.warn("Retrieving data from grafana failed due to TimeOut most likely by {}", apiUrl);            e.printStackTrace();        }    }
查看完整描述

2 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

使用 rest 模板(或另一個用于 http 請求的 java 庫,甚至是在 java URL 包中構建)比使用 Runtime 更好。除了以后可能很重要的可移植性之外,即使您認為現在不需要它,還有其他優點。

代碼更易于維護和理解(想象一個不理解 curl -D -X -H 等的開發人員)。調試起來更容易。例如,當它花費太長時間并且更容易進行錯誤處理時,您可以使用某種斷路器。您可以在讀取它們等過程中處理結果?;旧?,您擁有控制權,而不是一些外部工具。

使用 Runtime 可能會讓您免于編寫幾行代碼,但由于您正在編寫 Java 程序,因此最好以 Java 方式進行 ;)


查看完整回答
反對 回復 2021-06-30
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

對于擊中,GET我寧愿使用 Java。由于以下原因:

一種。Curl 通常在 *nix 上找到。使用 Java,您的代碼應該是平臺獨立的。如果將來您的代碼需要在 Windows 上運行。它將帶有 curl 或潛在代碼更改的依賴項。

灣 您可以更好地處理錯誤,而無需解析 curl 的輸出或其退出代碼。

C。如果 GET API 的輸出需要被解析,像 Spring 這樣的庫可以幫助你。


查看完整回答
反對 回復 2021-06-30
  • 2 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號