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、端口是不是正确。

    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名