多处理池将结果返回为可用

时间:2015-10-20 16:55:24

标签: python dictionary multiprocessing pool

我试图实施多处理并努力获得我需要的地方。

所以我以前使用Celery进行多处理的一些背景,所以我习惯于能够将工作发送给工人并在工作完成时进行轮询,并且即使其他工作正在进行,也可以获得工作结果。我试图将其与多处理相关联。以下是我到目前为止从我找到的各种网站中挖掘出的......

%ROWTYPE

所以我在我的网址上开启了openurl功能,但是如果我打破"打印'现在是什么'"""'& 。

我如何进行民意调查?我的线程并在结果进入时返回结果?

谢谢!

1 个答案:

答案 0 :(得分:0)

pool.map将可迭代元素分布在工作池上,并在结果准备就绪时聚合结果。

此外,pool.closepool.join指示池等待所有任务完成。

如果您想要处理结果,则必须使用pool.apply_async并使用回调。或者你可以收集pool.apply_async返回的AsyncResult个对象并迭代它们以查看每个对象何时准备就绪,但整个逻辑会非常繁琐。

from multiprocessing.pool import ThreadPool

pool = ThreadPool(20)
tasks = []

def callback(result):
    # handle the result of your function here
    print result

for url in urls:
    pool.apply_async(openurl, args=[url], callback=callback)

pool.close()
pool.join()