我正在使用多处理模块创建一个远程队列,我收到一个套接字错误:“[Errno 10061] 无法建立连接,因为目标机器主动拒绝了它”
我的服务器代码非常基本:
from multiprocessing.managers import BaseManager
import Queue
queue = Queue.Queue()
class QueueManager(BaseManager): pass
QueueManager.register('get_queue', callable=lambda:queue)
m = QueueManager(address=('127.0.0.1', 50000), authkey='test')
s = m.get_server()
s.serve_forever()
我需要我的服务器做的就是保留一份工作,然后通过让工作人员查询队列并拉出工作来处理。
我的客户正在访问机器以将作业放入队列:
import uuid
from multiprocessing.managers import BaseManager
class QueueManager(BaseManager): pass
QueueManager.register('get_queue')
m = QueueManager(address=('machine ip', 50000), authkey='test')
m.connect()
queue = m.get_queue()
queue.put(r"%s" % uuid.uuid4().get_hex())
queue.put(r%s" % uuid.uuid4().get_hex())
它调用 get() 来获取队列中的项目。
当我尝试访问远程队列时,我收到以下错误:“[Errno 10061] 无法建立连接,因为目标机器主动拒绝它”,如上所述。如果我在同一台机器上运行代码,它可以正常工作,但是当我在多台机器上分发它时,客户端无法访问服务器。
我可以很好地 ping 机器,所以我的第一个想法是禁用防火墙。我这样做仍然得到套接字错误。
我现在正在使用 Windows 7 进行开发。
有什么建议么?