首页 > 解决方案 > 如何在多台计算机之间共享多处理队列对象

问题描述

我关注了 Python 的多处理模块上的文档。有一个关于如何在多台机器之间multiprocessing.managers.BaseManager共享相同内容的示例。Queue服务器示例非常简单:

from multiprocessing.managers import BaseManager
import Queue
queue = Queue.Queue()
class QueueManager(BaseManager): pass
QueueManager.register('get_queue', callable=lambda:queue)
m = QueueManager(address=('0.0.0.0', 50000), authkey='abracadabra')
s = m.get_server()
s.serve_forever()

客户端更简单:

from multiprocessing.managers import BaseManager
class QueueManager(BaseManager): pass
QueueManager.register('get_queue')
m = QueueManager(address=('localhost', 50000), authkey='abracadabra')
m.connect()
queue = m.get_queue()
queue.put('hello')

问题是客户端无法连接到服务器。为了在客户端和服务器之间建立通信,需要更改哪些内容?

标签: pythonmultithreadingmultiprocessingqueue

解决方案


推荐阅读