前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 中如何限制方法的返回时间

Java 中如何限制方法的返回时间

原创
作者头像
HoneyMoose
发布2023-02-10 00:54:40
3K0
发布2023-02-10 00:54:40
举报
文章被收录于专栏:CWIKIUS

最近在研究 ChatGPT 的 API 调用。

因为 ChatGPT 的 API 调用时间通常超过 30 秒。

所以我们希望在程序中限制这个方法的执行时间,不要让方法花太长时间去执行了。

JDK 方法

可以使用 JDK 中的 ExecutorService 方法来对调用的方法进行处理。

代码如下:

代码语言:javascript
复制
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 执行器。

在这个执行器中,我们配置一个任务。

然后这个任务我们指定了执行时间为 15 秒。

如果这个方法的执行时间超过了 15 秒,程序将会抛出一个异常。

可以通过这个方法来限制方法的执行时间。

https://www.ossez.com/t/java/14322

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JDK 方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档