Python“任务服务器”

2024-03-20

我的问题是:我应该使用哪个 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(使用前将#替换为@)

Python“任务服务器” 的相关文章

随机推荐