【发布时间】:2014-09-29 21:18:29
【问题描述】:
考虑http://eli.thegreenplace.net/2012/01/24/distributed-computing-in-python-with-multiprocessing/ 中的网络多处理设置(即,一台具有两个队列的服务器与网络上的许多连接客户端共享)。
我想扩展这个例子,使服务器可以与所有客户端共享一些参数。按照链接代码,我通过注册一个额外的可调用对象(get_params 位)扩展了JobQueueManager(服务器 端):
JobQueueManager.register('get_job_q', callable=lambda: job_q)
JobQueueManager.register('get_result_q', callable=lambda: result_q)
JobQueueManager.register('get_params', callable=lambda: ['123'])
manager = JobQueueManager(address=('', port), authkey=authkey)
manager.start()
为了完成这项工作,我必须更改 client 代码如下
job_q = manager.get_job_q()
result_q = manager.get_result_q()
params = manager.get_params()._getvalue()
但是,为什么我需要_getvalue() 而队列不需要呢?有没有更好/合适的方法?
【问题讨论】:
标签: python multiprocessing cluster-computing distributed-computing