[英]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.