首页 > 解决方案 > 长时间超时的无服务器 python 请求?

问题描述

我有几个遵循类似格式的 python 脚本:你传入一个日期,它要么: - 检查我的 S3 存储桶以查找文件名中具有该日期的文件,然后对其进行解析,或者 - 运行一个 python 脚本对该日期的文件(运行时间超过 1 小时)

我正在寻找一种无服务器解决方案,它可以让我在一系列日期调用这些函数,并并行运行它们。由于我的 python 脚本的持续时间很长,AWS 和 Google Cloud Functions 等服务由于超时(分别为 15 分钟和 9 分钟)而无法工作。我查看了 Google Cloud Dataflow,但不确定这对于我相对简单的用例是否过大。

中断可能最少的东西很重要,所以我倾向于来自 AWS、谷歌云等的东西。

我还希望能够通过日志查看每个作业的进度仪表板,这样我就可以看到哪些日期已完成以及哪些日期有错误(以及错误是什么)

标签: google-cloud-platformsoftware-design

解决方案


正如您所说,使用 Google Cloud Functions,您可以在部署期间配置最长 9 分钟的超时。

与允许更高超时的 Dataflow 不同的解决方案:

应用引擎 Flex

允许更高超时(最长 60 分钟)的其他 GCP 产品是 App Engine Flex 环境链接

云任务

云任务也类似,但是是异步的。超时时间长达 30 分钟。它是一个任务队列,您将任务放入队列并快速返回。然后,队列的工作人员(或多个工作人员)将一一评估任务。Cloud Tasks 的通常输出是发送电子邮件或将结果保存到存储链接中。

使用此解决方案,您可以为要处理的每个文件/文件名添加一个任务,每个任务的超时时间为 30 分钟。


推荐阅读