gpt4 book ai didi

python WSGI 与长时间运行的进程

转载 作者:行者123 更新时间:2023-12-01 04:03:22 27 4
gpt4 key购买 nike

我正在尝试编写一个简单的 WSGI 兼容应用程序,该应用程序响应 HTTP POST、向服务器发送一些数据、关闭连接,以及继续执行几秒钟。

这是一个运行时间较长的过程,但不是长时间运行的过程。我必须在 3 秒内响应并关闭连接(Slack),但我的程序可能需要 5 秒左右才能实际运行。我可以运行足够的 WSGI 进程来处理负载,即使只需要 5 秒。

这是一个例子:

import time

def application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
yield "foo\n".encode()
# we're done responding to the server, close the connection

time.sleep(5)
with open('/tmp/foo', 'w') as stream:
stream.write('output stuff\n')

在此示例中,yield 正确刷新了内容,但我想继续执行。我可以做一个 fork 然后在父级中 return() ,因为我希望这是一个 CGI 脚本,但我不高兴拥有所有未关闭的 WSGI 状态。

我使用 Python 3.5 和 mod_wsgi 进行测试,但我希望它是通用的/兼容的。

最佳答案

你考虑过线程池模型吗?您可以拥有一个生产者-消费者队列。只需从 WSGI 应用程序发送到队列并立即返回。这项工作将在不同的线程中完成。

关于python WSGI 与长时间运行的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120582/

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