繁体   English   中英

AWS Lambda的并发行为

[英]Concurrency behavior of AWS Lambda

假设我有这样的代码。

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中的回调函数,我可以调用它来关闭所有打开的池连接?

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

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

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

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

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

没有没有可用于处理此问题的回调。 当容器由于不活动而最终被移除时,您的功能将处于挂起状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM