我的问题是:我应该使用哪个 python 框架来构建我的服务器?
Notes:
- 该服务器与其客户端进行 HTTP 对话:GET 和 POST(通过 pyAMF)
- 客户端“提交”“任务”进行处理,然后在一段时间后检索关联的“task_result”
- 提交和检索可能会间隔几天 - 不同的 HTTP 连接
- “任务”是描述要解决的问题的一组XML,并且“task_result”是描述答案的一组XML。
- 当服务器收到“任务”时,会将其排队等待处理
- 服务器管理该队列,并且当任务到达顶部时,组织它们被处理。
- 处理是由一个长时间运行(15 分钟?)的外部程序(通过子进程)执行的,该程序提供任务 XML 并生成一个“task_result”XML 块,服务器拾取并存储该 XML 块(以供以后客户端检索)。
- 它提供几个基本的 HTML 页面,显示队列和处理状态(仅用于管理目的)
我尝试过twisted.web,使用SQLite 作为数据库和线程来处理长时间运行的进程。
但我不禁觉得我错过了一个更简单的解决方案。我是吗?如果您面临这种情况,您会使用什么技术组合?
我建议使用现有的消息队列。有很多可供选择(见下文),它们的复杂性和稳健性各不相同。
另外,避免线程:让你的处理任务在不同的进程中运行(为什么它们必须在网络服务器中运行?)
通过使用现有的消息队列,您只需要担心生成消息(在您的网络服务器中)和消耗它们(在长时间运行的任务中)。随着您的系统的增长,您只需添加网络服务器和消费者即可进行扩展,而不必担心排队基础设施。
消息队列的一些流行的Python实现:
- http://code.google.com/p/stomper/ http://code.google.com/p/stomper/
- http://code.google.com/p/pyactivemq/ http://code.google.com/p/pyactivemq/
- http://xph.us/software/beanstalkd/ http://xph.us/software/beanstalkd/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)