Python 如何关闭失控的可用连接?
我在Python中为AWS构建了一个lambda函数,它使用Python 如何关闭失控的可用连接?,python,amazon-web-services,aws-lambda,Python,Amazon Web Services,Aws Lambda,我在Python中为AWS构建了一个lambda函数,它使用aiohttp发出一些请求 如AWS所述 Lambda函数代码中的任何声明(处理程序代码之外,请参见编程模型)都保持初始化状态,以便在再次调用函数时提供额外的优化。例如,如果Lambda函数建立数据库连接,而不是重新建立连接,则在后续调用中使用原始连接 因此,我将aiohttp.ClientSession()放在handle函数之外,以便将来的lambda函数可能会重用它: http\u会话=无 def句柄(事件、上下文): 全局htt
aiohttp
发出一些请求
如AWS所述
Lambda函数代码中的任何声明(处理程序代码之外,请参见编程模型)都保持初始化状态,以便在再次调用函数时提供额外的优化。例如,如果Lambda函数建立数据库连接,而不是重新建立连接,则在后续调用中使用原始连接
因此,我将aiohttp.ClientSession()
放在handle函数之外,以便将来的lambda函数可能会重用它:
http\u会话=无
def句柄(事件、上下文):
全局http_会话
#如果重用上下文,http_会话将不会为无
如果http_会话为无:
http_session=aiohttp.ClientSession()
#[…]在此处使用http_会话
但是,我必须在不再使用wait session.close()
后关闭与它的连接,也就是说,当上下文被丢弃时。我无法关闭handle
中的http\u会话
,因为这将完全消除重新使用连接的可能性
考虑到这一点,我有什么选择
这就是我的公司目前的处理方式,我在互联网上找到的大多数例子都是这样。保持连接打开是非常安全的。如果一段时间后未使用连接,服务器将关闭连接。在服务器端配置连接关闭后的时间(保持活动超时)。每个服务器的默认值都不同。例如,对于apache,只需5-10秒。你说得对。如果你关闭它,它就不再是持久连接了。我从来没有听说过上下文挂钩。保持连接打开是非常安全的。如果一段时间后未使用连接,服务器将关闭连接。在服务器端配置连接关闭后的时间(保持活动超时)。每个服务器的默认值都不同。例如,对于apache来说,这只需要5-10秒。好吧,如果让连接打开没有真正的问题,我认为这是最好的选择。你能回答一下吗?这样我就可以接受你的回答了?