亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java 中限制方法的返回時(shí)間最新方法

 更新時(shí)間:2023年05月10日 09:32:34   作者:lucas.hu  
最近在研究 ChatGPT 的 API 調(diào)用,因?yàn)?nbsp;ChatGPT 的 API 調(diào)用時(shí)間通常超過(guò) 30 秒,所以我們希望在程序中限制這個(gè)方法的執(zhí)行時(shí)間,不要讓方法花太長(zhǎng)時(shí)間去執(zhí)行了,今天通過(guò)本文給大家分享Java 中如何限制方法的返回時(shí)間,感興趣的朋友跟隨小編一起看看吧

最近在研究 ChatGPT 的 API 調(diào)用。

因?yàn)?ChatGPT 的 API 調(diào)用時(shí)間通常超過(guò) 30 秒。

所以我們希望在程序中限制這個(gè)方法的執(zhí)行時(shí)間,不要讓方法花太長(zhǎng)時(shí)間去執(zhí)行了。

JDK 方法

可以使用 JDK 中的 ExecutorService 方法來(lái)對(duì)調(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 中,我們配置了一個(gè) ExecutorService 執(zhí)行器。

在這個(gè)執(zhí)行器中,我們配置一個(gè)任務(wù)。

然后這個(gè)任務(wù)我們指定了執(zhí)行時(shí)間為 15 秒。

如果這個(gè)方法的執(zhí)行時(shí)間超過(guò)了 15 秒,程序?qū)?huì)拋出一個(gè)異常。

可以通過(guò)這個(gè)方法來(lái)限制方法的執(zhí)行時(shí)間。

到此這篇關(guān)于Java 中如何限制方法的返回時(shí)間的文章就介紹到這了,更多相關(guān)java限制方法的返回時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IISExpress?配置允許外部訪問(wèn)詳細(xì)介紹

    IISExpress?配置允許外部訪問(wèn)詳細(xì)介紹

    這篇文章主要介紹了?IISExpress?配置允許外部訪問(wèn)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • java的幾種定時(shí)器的具體使用(4種)

    java的幾種定時(shí)器的具體使用(4種)

    本文主要介紹了4種類型的定時(shí)器:@Scheduled注解、quartz、new Timer().schedule、使用線程控制的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-09-09
  • java如何讀取yaml配置文件

    java如何讀取yaml配置文件

    這篇文章主要介紹了java如何讀取yaml配置文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • java-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)

    java-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)

    下面小編就為大家?guī)?lái)一篇java-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Java事件機(jī)制要素及實(shí)例詳解

    Java事件機(jī)制要素及實(shí)例詳解

    這篇文章主要介紹了Java事件機(jī)制要素及實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot使用AOP記錄接口操作日志的方法

    SpringBoot使用AOP記錄接口操作日志的方法

    日志記錄量是很大的,所以只記錄關(guān)鍵地方并按期歸檔,最好是存在如elasticsearch中,如果存在數(shù)據(jù)庫(kù)中,分表是不錯(cuò)的選擇,這篇文章主要介紹了SpringBoot使用AOP記錄接口操作日志的方法,需要的朋友可以參考下
    2022-08-08
  • java?面向?qū)ο蟠a塊及不同位置對(duì)屬性賦值的執(zhí)行順序

    java?面向?qū)ο蟠a塊及不同位置對(duì)屬性賦值的執(zhí)行順序

    這篇文章主要介紹了java面向?qū)ο蟠a塊及不同位置對(duì)屬性賦值的執(zhí)行順序,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • SpringBoot自定義Banner使用詳解

    SpringBoot自定義Banner使用詳解

    這篇文章主要介紹了SpringBoot自定義Banner使用詳解,啟動(dòng) Spring Boot 時(shí),幾乎總是能在控制臺(tái)上方看到如下橫幅,這個(gè)也叫字符畫、英文ASCII藝術(shù)字,這就是banner,我們來(lái)看一下如何使用,需要的朋友可以參考下
    2024-01-01
  • java面試突擊之sleep和wait有什么區(qū)別詳析

    java面試突擊之sleep和wait有什么區(qū)別詳析

    按理來(lái)說(shuō)sleep和wait本身就是八竿子打不著的兩個(gè)東西,但是在實(shí)際使用中大家都喜歡拿他們來(lái)做比較,或許是因?yàn)樗鼈兌伎梢宰尵€程處于阻塞狀態(tài),這篇文章主要給大家介紹了關(guān)于java面試突擊之sleep和wait有什么區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Java中的FutureTask實(shí)現(xiàn)代碼實(shí)例

    Java中的FutureTask實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了Java中的FutureTask手寫代碼實(shí)例,FutureTask是Future的實(shí)現(xiàn),用來(lái)異步任務(wù)的獲取結(jié)果,可以啟動(dòng)和取消異步任務(wù),查詢異步任務(wù)是否計(jì)算結(jié)束以及獲取最終的異步任務(wù)的結(jié)果,需要的朋友可以參考下
    2023-12-12

最新評(píng)論