设想
我有一个用 Python 和 gevent 实现的服务器进程,它通过 TCP/IP 连接到后端服务,并根据后端服务提供的更改为许多 Web 客户端(每个进程约 1000 个)提供快速变化的动态内容。该服务在 Ubuntu 10.04 上运行,不会在 Windows 上运行,因此目标平台是固定的。我们目前使用的是 Python 2.6.6。
问题
为这么多客户端提供更改可能会导致处理后端发送的更改时出现延迟,因此我的计划是将服务器拆分为多个进程。许多工作进程将为 Web 客户端提供服务,而主进程仍将连接到后端服务。我已经在使用一个单独的 greenlets 池来为 Web 客户端提供服务,但它们需要放入工作进程中。
问题
您能否为我指出一个用于 gevent 的工作进程池实现,或者弄清楚如何以正确的方式将 Python 自己的多处理模块与 gevent 一起使用?
限制
我想避免在我们的进程中引入 Python 线程,因为这会给 GIL 争用留出空间,这会通过引入延迟来降低性能。因此,如果可能的话,这将是一个干净的多处理 + gevent 解决方案。