AWS Lambda - 如果我启动一个线程,当 Lambda 被冻结/解冻时会发生什么情况?
2022-09-04 04:33:29
我有一个基于Java的AWS Lambda函数,可以启动一个后台线程。线程运行向外部服务报告指标的计划任务。
根据 Lambda 文档,Lambda 函数在执行完成后将被“冻结”一段时间,如果在短时间内再次触发该函数,则可以“解冻”并重新使用。
我的问题是关于发生这种情况时后台线程会发生什么。例如,假设我在包含我的处理程序函数的类的构造函数中启动了后台线程。根据文档,处理程序函数范围之外的所有变量都将保持初始化状态,因此我的线程应该仍然存在,但它仍然会运行吗?我的线程在后台运行的事实是否会阻止 Lambda 首先完成执行?还是仅仅因为它尚未完全完成而超过五分钟限制,即使处理程序函数已完成?