Python 分布式進程Master

來源:互聯網
上載者:User

標籤:python   multiprocessing   分布式進程   

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author: Changhua Gong


import random, time, queue

from multiprocessing.managers import BaseManager

from multiprocessing import freeze_support

‘‘‘

master進程:調度進程,作用分配任務和接收結果

這部分內容與官網教程,有些出入

‘‘‘


# 發送任務的對列

queue_t = queue.Queue()

# 接收結果的對列

queue_rs = queue.Queue()



# 從BaseManager繼承QueueManager

class QueueManager(BaseManager):

    pass



def return_queue_t():

    global queue_t

    return queue_t



def return_queue_r():

    global queue_rs

    return queue_rs



def master():

    # 把兩個Queue都註冊到網路上, callable參數關聯了Queue對象:

    QueueManager.register("get_queue_t", callable=return_queue_t)

    QueueManager.register("get_queue_rs", callable=return_queue_r)

    # 綁定連接埠5000, 設定驗證碼love8013

    manager = QueueManager(address=("127.0.0.1", 5000), authkey=b"love8013")

    # 啟動Queue

    manager.start()

    # 獲得通過網路訪問的Queue對象

    t = manager.get_queue_t()

    rs = manager.get_queue_rs()

    # 放幾個任務進去,計算每個數的4次方

    for i in range(10):

        n = random.randint(0, 10000)

        print("Put %d into the task queue." % n)

        t.put(n)  # 把每個數放進任務隊列中,放在隊列中的是int

    # 從result隊列讀取結果

    print("Try to get results.")

    for i in range(10):

        r = rs.get(timeout=10)

        print("Result: %s" % r)

    # 關閉:

    manager.shutdown()

    print(‘master exit.‘)



if __name__ == "__main__":

    freeze_support()

    master()


Python 分布式進程Master

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.