gpt4 book ai didi

python - 如何处理 python worker 中长时间运行的请求?

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

我有一个 python(嗯,现在是 php,但我们正在重写)函数,它接受一些参数(A 和 B)并计算一些结果(在图中找到从 A 到 B 的最佳路径,图是只读的),在典型情况下,一次调用需要 0.1 秒到 0.9 秒才能完成。用户可以将此功能作为简单的 REST 网络服务访问 (GET bestpath.php?from=A&to=B)。当前的实现非常愚蠢——它是一个简单的 php 脚本+apache+mod_php+APC,每个请求都需要加载所有数据(在 php 数组中超过 12MB),创建所有结构,计算路径并退出。我想改变它。

我想要一个有 N 个独立工作人员的设置(每台服务器 X 有 Y 服务器),每个工作人员都是一个循环运行的 python 应用程序(获取请求 -> 处理 -> 发送回复 -> 获取请求...),每个worker 一次可以处理一个请求。我需要一些可以充当前端的东西:从用户那里获取请求,管理请求队列(具有可配置的超时)并一次为我的员工提供一个请求。

如何解决这个问题?你能提出一些设置吗? nginx + fcgi 或 wsgi 或其他东西?代理?如您所见,我是 Python、反向代理等方面的新手。我只需要一个关于架构(和数据流)的起点

顺便说一句。工作人员正在使用只读数据,因此无需维护他们之间的锁定和通信

最佳答案

在 Python 中使用线程处理这种排列的典型方法是使用标准库模块 Queue .可以在此处找到使用队列模块管理工作人员的示例:Queue Example

关于python - 如何处理 python worker 中长时间运行的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674696/

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