脚本
我有一个在Python和gevent中实现的服务器进程,它通过TCP / IP连接到后端服务,并为许多Web客户端(每个进程约1000个)提供服务,并根据后端服务提供的更改快速更改dynamic内容。 该服务在Ubuntu 10.04上运行,不会在Windows上运行,因此目标平台已经修复。 目前我们正在使用Python 2.6.6。
问题
将更改提供给多个客户端可能会导致处理后端发送的更改滞后,因此我的计划是将服务器分成多个进程。 许多工作进程将为Web客户端服务,而主进程仍将连接到后端服务。 我已经使用一个单独的greenlet池来为Web客户端服务,但是他们需要被放入工作进程。
在python中的多处理,以加快function
freeRTOS和并行处理
发送TERM信号给在父进程的另一个线程中产生的subprocess
OSError 38 与多处理
Python多处理linux的Windows差异
题
您可以请我指出一个gevent的工作进程池实现,或者找出如何以正确的方式使用Python自己的多处理模块?
限制
我想避免在我们的进程中引入Python线程,因为这会给GIL争用留出空间,从而通过引入延迟来降低性能。 所以如果可能的话,这将是一个干净的多处理+ gevent解决scheme。
Windows Python将variables传递给池进程
Python 3.2 Multiprocessing.Process没有运行目标函数
如何编程以便不同的进程在不同的cpu核上运行?
PyInstaller构buildWindows EXE失败,多处理
我建议看看用Python编写的Celery分布式任务处理系统。
celery的基本思想是你有一个队列( RabbitMQ或Redis ),工作人员用Python进程编写,并通过celeryd守护进程公开。 根据芹菜文档, celeryd支持在gevent模式下运行(对于网络I / O绑定进程),所以大概你的工作代码不需要太多的修改就可以在这个环境下运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。