gpt4 book ai didi

python - 如何从单个应用程序路由 : Flask (Python) 返回多个响应

转载 作者:行者123 更新时间:2023-12-05 02:07:57 24 4
gpt4 key购买 nike

我在 Heroku 上托管了一个用 Python 编写的 Flask 应用程序。我有一个类似这样的功能:

@app.route("/execute")
def execute():
doSomething()
return Response()

现在,问题是 doSomething() 的执行时间超过 30 秒,绕过了 Heroku 的 30 秒超时持续时间,它杀死了应用程序。

我可以创建另一个线程并在其中执行 doSomething(),但是 Response 对象需要返回一个只有在 doSomething 之后才可用的文件() 执行完毕。

我也尝试过使用生成器和 yield,但也无法让它们工作。像这样的东西:

@app.route("/execute")
def execute():
def generate():
yield ''
doSomething()
yield file
return Response(generate())

但该应用要求我刷新页面以获取第二个生成的对象。

我基本上需要做的是最初返回一个空的Response对象,开始执行doSomething(),然后返回另一个Response 对象。我该如何实现?

最佳答案

通常对于 http,一个请求意味着一个响应,仅此而已。

对于您的问题,您可能需要调查:

  • Streaming Response ,用于包含多个部分的大响应。
  • Sockets允许对单个“请求”进行多个“响应”。
  • 与您的客户进行多次查询,如果您可以控制您的客户代码,这很可能是最简单的解决方案

我建议阅读 this ,它有点技术性,但它帮助我理解了很多东西。

关于python - 如何从单个应用程序路由 : Flask (Python) 返回多个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61390140/

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