python分布式学习记录

根据网上资料学习了python分布式进程,大体使用方法总结,以及注意点如下:

首先是master部分:

  1. 继承multiprocessing模块的managers子模块中的BaseManager, 如类名为QueueManager
    from multiprocessing.managers import BaseManager
    class QueueManager(BaseManager):
    pass

  2. master中建立queue,并且提供函数获取queue
    task_queue = queue.Queue()
    def func():
    global task_queue
    return task_queue

  3. 使用QueueManager将Queue注册到网上使用QueueManager将Queue注册到网上
    需要注意的是, 注册时使用lambda会报错,需按下面调用:
    QueueManager.register(‘get_task_queue’, callable=func)意思是把func的功能在网络上通过get_task_queue来调用

  4. manager = QueueManager(address=(‘127.0.0.1’, 5000), authkey=b’abc’)
    manager.start()
    task_queue = manager.get_task_queue()
    注意这里一定要填写地址,否则运行fail

  5. 需要注意的是manager的这些操作需要在主函数中运行,所以代码要放在main下面:
    from multiprocessing import freeze_support
    if _ name_ == ‘_main _’:
    freeze_support()

Worker部分:
和master部分很像,但不需一定在main中执行。
6. 构建QueueManager
class QueueManager(BaseManager):
pass
7. 注册接口
QueueManager.register(‘get_task_queue’)
8. 构造QueManager实例
manager=QueueManager(address=(‘127.0.0.1’, 5000), authkey=b’abc’)
如果是其他机器运行worker,地址要更换为master所在机器ip地址
9. manager.connect()
10. 取得queue通过manager
task = manager.get_task_queue()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值