liuxin95 2019-02-28 18:43 采纳率: 0%
浏览 294
已结题

分布式计算,worker端电脑运行报错:目标电脑积极拒绝,无法连接

task_master.py

import random, queue
from multiprocessing.managers import BaseManager


#建立发布任务和接受结果的队列
task_queue = queue.Queue()
result_queue = queue.Queue()

#通过manger把队列暴露到网络上
class QueueManager(BaseManager):
    pass

def get_task_queue():
    global task_queue
    return task_queue

def get_result_queue():
    global result_queue
    return result_queue


QueueManager.register('put_task',callable = get_task_queue)
QueueManager.register('get_result',callable = get_result_queue) 

def startManager(host,port,key):
    #绑定ip和端口,设置验证码
    manager = QueueManager(address = (host,port),authkey = key)
    manager.start()
    return manager

if __name__ == '__main__':
    manager = startManager('127.0.0.1',5000,b'abc')
    #通过网络获得对象
    task = manager.put_task()
    #发布任务
    for i in range(10):
        n = random.randint(1,1000)
        task.put(n)
        print('put task param >>> %d' % n)
    print('try to get result...')
    #获取worker端得到的结果
    result = manager.get_result()
    for i in range(10):
        ans = result.get()
        print('get result: %s' % ans)
    manager.shutdown()
    print('master exit')

task_worker.py

import queue,time
from multiprocessing.managers import BaseManager

#从网络上获取队列
class QueueManager(BaseManager): 
    pass

QueueManager.register('put_task')
QueueManager.register('get_result')

def connectManager(addr,port,key):
    manager = QueueManager(address = (addr,port), authkey = key)
    manager.connect()
    return manager



if __name__ == '__main__':
    addr = '127.0.0.1'
    print('begin connect %s...' % addr)
    manager = connectManager(addr,5000,b'abc')
    #从网络上获取队列
    task = manager.put_task()
    result = manager.get_result()
    for i in range(10):
        n = task.get()
        print('run task %d*%d...' % (n,n))
        #计算结果并发回去
        ans = '%d*%d = %d' % (n,n,n*n)
        time.sleep(1)
        result.put(ans)
    print('worker exit')

在自己电脑上开两个命令行跑没问题,但是把task_worker.py放另一台电脑上跑报错:

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-02-28 23:21
    关注

    看下防火墙是不是限制了,把防火墙关掉,还有不同网络检查端口映射和网络是不是通,还有ip、端口是不是正确。

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题