gpt4 book ai didi

java - AWS Lambda 的并发行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:20 27 4
gpt4 key购买 nike

假设我有这样的代码。

public class MyHandler {
private Foo foo;
public void handler(InputStream request, OutputStream response, Context context) {
...
}
}

Foo foo 负责创建池化数据库连接。

我正在尝试了解这如何与 AWS Lambda 配合使用。如果我理解正确,foo 会在多个调用之间共享。第一个需要更多时间,因为它必须加载到容器中,后续的会更快,因为 foo 已经初始化。直到我的处理程序在一段时间不活动后被踢出之前都是这种情况。

那么,对于顺序调用,它会使用相同的对象吗?它会访问在早期函数调用中创建的/tmp 吗?

并行调用呢?它会复制整个容器吗,因为根据文档,每个 lambda 函数都应该在自己的容器、自己的资源和自己的/tmp 中执行?

如果处理程序在不活动后将被踢出,我可以调用 Java 中的回调函数来关闭所有打开的池连接吗?

最佳答案

So, for sequential invocations, would it use the same object, would it have access to /tmp created in earlier function call ?

是的,它会使用相同的对象。是的,它可以访问在早期函数调用中创建的 /tmp

What about parallel invocations ? Would it duplicate the entire container, because as per the docs, each lambda function should execute in its own container, its own resources and its own /tmp ?

并行调用将发生在单独的容器中。单个容器一次只能处理一个调用。所以是的,整个容器将被复制,并且每个容器都有自己的 /tmp

If the handler is going to get kicked out after inactivity, is there a callback function in Java that I can call to close out all opened pooled connections ?

不,没有可用于处理此问题的回调。当容器由于不活动而最终被删除时,您的函数将处于暂停状态。

关于java - AWS Lambda 的并发行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44600938/

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