Python的长时间运行,轮询,排队过程。什么是最好用的东西?

时间:2010-04-20 14:45:46

标签: python

如果有人问,请随时关闭和/或重定向,但这是我的情况:

我有一个应用程序,需要做一堆小工作单元(轮询一个Web服务,直到完成某些事情,然后解析大约1MB的XML并将其放入数据库)。我希望有一个简单的异步排队机制,它可以轮询在队列中完成的工作,执行需要完成的工作单元,并且可以灵活地生成多个工作进程,因此这些工作单元可以是并行完成。 (如果有某种事件框架,我也可以在工作完成时听取它的奖励。)

我确信有这样做的东西。我在描述Twisted吗?我浏览了文档,我只是不确定我的问题是如何映射到他们的框架上的,但我没有花太多时间来处理它。我应该只看Python中的多进程库吗?还有别的吗?

2 个答案:

答案 0 :(得分:3)

celery

您可以将其分解为2个不同的Tasks:一个用于轮询Web服务并排队第二个任务,该任务将负责解析XML并将其保留。

答案 1 :(得分:0)

对于Python的内置(2.6+无论如何)多处理模块来说,这个问题听起来很不错:http://docs.python.org/library/multiprocessing.html

一个简单的解决方案是创建一个进程池并使用您的主程序来轮询XML块。一旦它拥有它们,它就可以将它们传递给池进行解析/持久化。