gpt4 book ai didi

Python - 如何在 AWS Lambda 中优雅地处理超时

转载 作者:行者123 更新时间:2023-11-28 17:06:44 30 4
gpt4 key购买 nike

我有一个 lambda,我需要它正常关闭并登录到外部系统。在查看了有关此事的一些文献之后,我使用线程找到了以下解决方案:

def lambda_handler(event, context):

threshold_millis = 10 * 1000 # leave when there are only 10 seconds left
que = queue.Queue()
t = threading.Thread(target=lambda q, ev: q.put(do_work(ev)), args=(que, event))
t.daemon = True
t.start()

while True:
if context.get_remaining_time_in_millis() < threshold_millis:
# Do some logging notifying the timeout
return {
"isBase64Encoded": False,
"statusCode": 408,
"headers": {'Content-Type': "application/json"},
"body": "Request timed out"
}

elif not t.isAlive():
response = que.get()
return response

time.sleep(1)

虽然它有效,但我想知道:是否有比这个更好的实践来优雅地处理 AWS Lambda 中的超时?

最佳答案

观察 get_remaining_time_in_millis 是在 lambda 中抢占超时的最佳/推荐方式;没有调用任何特殊事件来让您知道您将超时。

在不知 Prop 体细节的情况下,您可以通过查看收到错误所用的时间来推断客户端超时。但是,我更希望您的解决方案是让 lambda 明确说明它。

关于Python - 如何在 AWS Lambda 中优雅地处理超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50484019/

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