Java 中限制方法的返回時間最新方法
最近在研究 ChatGPT 的 API 調用。
因為 ChatGPT 的 API 調用時間通常超過 30 秒。
所以我們希望在程序中限制這個方法的執(zhí)行時間,不要讓方法花太長時間去執(zhí)行了。
JDK 方法
可以使用 JDK 中的 ExecutorService 方法來對調用的方法進行處理。
代碼如下:
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 }
在我們的調用方法 callChatGPT 中,我們配置了一個 ExecutorService 執(zhí)行器。
在這個執(zhí)行器中,我們配置一個任務。
然后這個任務我們指定了執(zhí)行時間為 15 秒。
如果這個方法的執(zhí)行時間超過了 15 秒,程序將會拋出一個異常。
可以通過這個方法來限制方法的執(zhí)行時間。
到此這篇關于Java 中如何限制方法的返回時間的文章就介紹到這了,更多相關java限制方法的返回時間內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java?面向對象代碼塊及不同位置對屬性賦值的執(zhí)行順序
這篇文章主要介紹了java面向對象代碼塊及不同位置對屬性賦值的執(zhí)行順序,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09java面試突擊之sleep和wait有什么區(qū)別詳析
按理來說sleep和wait本身就是八竿子打不著的兩個東西,但是在實際使用中大家都喜歡拿他們來做比較,或許是因為它們都可以讓線程處于阻塞狀態(tài),這篇文章主要給大家介紹了關于java面試突擊之sleep和wait有什么區(qū)別的相關資料,需要的朋友可以參考下2022-02-02