Flask EB 504网关超时

时间:2020-08-02 18:30:52

标签: python amazon-web-services nginx flask gunicorn

我是flask的新手,最近创建了一个flask应用程序,用户可以在其中上传一个xlsx文件,并在处理后获取另一个xlsx文件。

我已经使用AWS EB免费套餐托管了此flask应用程序。如果处理时间少于30秒,则一切正常。但是我有一些情况,处理时间很大而且未知(15-20分钟)。当计算量很大时,我会收到504错误。

我想知道什么是处理这类请求的理想解决方案。我见过有人对ngnix和gunicorn配置提出建议,但我对此一无所知。

如果任何人都可以花些时间并提出可以做什么的想法,那将是很好的。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我建议您考虑对此过程进行一些重新配置,这将有助于为您的用户提供更好的解决方案。

您应该考虑使用其他技术来分开处理和返回来自原始HTTP请求的新xlsx文件。通过将这些组件分离开,最终用户将获得更好的体验,并且一路失败的机会更少(目前,一切都依赖于HTTP请求,如果失败,则整个过程将失败)。

您的HTTP请求将需要接受xslx文件,此后它应该存储该文件并将该操作的处理排队。如果将文件存储在S3中,则可以使用S3 events来触发Lambda来处理此处理。如果您要执行一系列事件,将这些步骤分解为可以由Step Function触发的单个功能可能更合适。

您的应用程序将需要了解该操作已排队,因此您需要确定如何向用户公开此信息。您可以选择存储处理状态为PENDING,直到您的步骤功能标记为完成为止,或者您可以选择将完成的文件通过电子邮件发送给用户(使用预先签名的URL)。