Java 中限制方法的返回時間最新方法
最近在研究 ChatGPT 的 API 調(diào)用。
因?yàn)?ChatGPT 的 API 調(diào)用時間通常超過 30 秒。
所以我們希望在程序中限制這個方法的執(zhí)行時間,不要讓方法花太長時間去執(zhí)行了。
JDK 方法
可以使用 JDK 中的 ExecutorService 方法來對調(diào)用的方法進(jìn)行處理。
代碼如下:
ExecutorService executor = newCachedThreadPool();
Callable<Object> task = new Callable<Object>() {
public String call() {
return callChatGPT(content);
}
};
Future<Object> future = executor.submit(task);
try {
Object result = future.get(15, TimeUnit.SECONDS);
contentGPT = (String) result;
} catch (TimeoutException ex) {
contentGPT = "ChatGPT API Time out, Please Re-try it";
} catch (InterruptedException e) {
contentGPT = "ChatGPT API Time out, Please Re-try it";
} catch (ExecutionException e) {
contentGPT = "ChatGPT API Time out, Please Re-try it";
} finally {
future.cancel(true); // may or may not desire this
}在我們的調(diào)用方法 callChatGPT 中,我們配置了一個 ExecutorService 執(zhí)行器。
在這個執(zhí)行器中,我們配置一個任務(wù)。
然后這個任務(wù)我們指定了執(zhí)行時間為 15 秒。
如果這個方法的執(zhí)行時間超過了 15 秒,程序?qū)伋鲆粋€異常。
可以通過這個方法來限制方法的執(zhí)行時間。
到此這篇關(guān)于Java 中如何限制方法的返回時間的文章就介紹到這了,更多相關(guān)java限制方法的返回時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
減少代碼開發(fā)工作的Java庫lombok及注解的使用學(xué)習(xí)
不久前發(fā)現(xiàn)有一個java第三方庫可以在一定程度上幫助我們從體力勞動中解救出來,它就是lombok。它提供了一些簡單的注解,并以此來消除java中臃腫的模版代碼。本文對于一些常用到的注解做了一個簡要的記錄,希望有更多的人enjoy it2022-07-07
Java?ASM使用logback日志級別動態(tài)切換方案展示
這篇文章主要介紹了Java?ASM使用logback日志級別動態(tài)切換方案展示,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
SpringBoot集成Kafka的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot集成Kafka的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
關(guān)于MVC的dao層、service層和controller層詳解
這篇文章主要介紹了關(guān)于MVC的dao層、service層和controller層詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02

