第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從遠(yuǎn)程服務(wù)獲取數(shù)據(jù)哪種方式更好

從遠(yuǎn)程服務(wù)獲取數(shù)據(jù)哪種方式更好

慕哥9229398 2021-06-24 18:10:37
我知道有很多方法可以GET從遙控器獲取數(shù)據(jù)。我嘗試過(guò)這些不同的類型:使用curl內(nèi)的Runtime.getRuntime().exec(...)或new ProcessBuilder(...).start();使用庫(kù)作為URL或RestTemplate;在使用其中之一之前,我們應(yīng)該考慮它們之間是否存在一些顯著差異?更新 #0為什么我會(huì)問(wèn)這個(gè)看似主題過(guò)于寬泛或基于意見的問(wèn)題?我遇到使用問(wèn)題,ProcessorBuilder在高并發(fā)系統(tǒng)中,會(huì)有一些TimeOut同時(shí)使用RestTemplate,有沒有?在挖掘和調(diào)試之后,我沒有發(fā)現(xiàn)與結(jié)果完全相關(guān)的內(nèi)容,我問(wèn)了這個(gè)問(wèn)題以了解我可能忽略了什么。 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貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

使用 rest 模板(或另一個(gè)用于 http 請(qǐng)求的 java 庫(kù),甚至是在 java URL 包中構(gòu)建)比使用 Runtime 更好。除了以后可能很重要的可移植性之外,即使您認(rèn)為現(xiàn)在不需要它,還有其他優(yōu)點(diǎn)。

代碼更易于維護(hù)和理解(想象一個(gè)不理解 curl -D -X -H 等的開發(fā)人員)。調(diào)試起來(lái)更容易。例如,當(dāng)它花費(fèi)太長(zhǎng)時(shí)間并且更容易進(jìn)行錯(cuò)誤處理時(shí),您可以使用某種斷路器。您可以在讀取它們等過(guò)程中處理結(jié)果。基本上,您擁有控制權(quán),而不是一些外部工具。

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


查看完整回答
反對(duì) 回復(fù) 2021-06-30
?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

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

一種。Curl 通常在 *nix 上找到。使用 Java,您的代碼應(yīng)該是平臺(tái)獨(dú)立的。如果將來(lái)您的代碼需要在 Windows 上運(yùn)行。它將帶有 curl 或潛在代碼更改的依賴項(xiàng)。

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

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


查看完整回答
反對(duì) 回復(fù) 2021-06-30
  • 2 回答
  • 0 關(guān)注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)