gpt4 book ai didi

java - 寻找在 Java 中检测 AWS Lambda 超时(超时前几秒)并进行测试的方法

转载 作者:行者123 更新时间:2023-12-05 06:09:11 25 4
gpt4 key购买 nike

我当前的 Lambda 函数正在同步调用第 3 方 Web 服务。此函数偶尔会超时(当前超时设置为 25 秒且无法进一步增加)我的代码是这样的:

 handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
try{
response = calling 3rd party REST service
}catch(Exception e){
//handle exceptions
}
}

1) 我想通过将自定义错误消息发送回客户端来在我的 Lambda 函数中自定义处理超时(跟踪时间并在实际超时前处理几毫秒)。我怎样才能有效地使用

context.getRemainingTimeInMillis()

在我的同步调用运行时跟踪剩余时间的方法?计划异步调用 context.getRemainingTimeInMillis()。这是正确的方法吗?2)测试超时自定义功能的好方法是什么?

最佳答案

我通过增加 Lambda 超时并在新线程中调用我的进程并在 n 秒后使线程超时来解决我的问题。

        ExecutorService service = Executors.newSingleThreadExecutor();
try {
Runnable r = () ->{
try {
myFunction();
} catch (Exception e) {
e.printStackTrace();
}
};
f = service.submit(r);
f.get(n, TimeUnit.MILLISECONDS);// attempt the task for n milliseconds
}catch(TimeoutException toe){
//custom logic
}

关于java - 寻找在 Java 中检测 AWS Lambda 超时(超时前几秒)并进行测试的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64901467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com