gpt4 book ai didi

python - 服务器如何检查来自客户端的请求对 Flask api 是否仍然有效?

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:20 25 4
gpt4 key购买 nike

我有一个 Flask api,它执行一些函数处理并需要几分钟的时间才能返回。有时请求会被客户端中止。在这些情况下我想取消处理。我怎样才能在 flask 中做到这一点?

我找到了一个临时解决方案。

@app.route('/stream')
def stream():
def gen():
try:
i = 0
while True:
data = 'this is line {}'.format(i)
print(data)
yield data + '<br>'
i += 1
time.sleep(1)
except GeneratorExit:
print('closed')

return Response(stream_with_context(gen()))

现在,当我们通过 sublime 请求并且一段时间后我们关闭 sublime 时,这适用于浏览器,flask api 无法识别客户端终止

最佳答案

使用 celery 包,并将该函数作为任务运行。然后您可以使用任何其他路线来启动 revoke() 函数,该函数会停止 celery 任务,例如。 your_worker.revoke(task_id,终止=True)。

关于python - 服务器如何检查来自客户端的请求对 Flask api 是否仍然有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54589995/

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