美文网首页
python 分布式demo

python 分布式demo

作者: 假程序员 | 来源:发表于2019-12-29 20:23 被阅读0次

    manager.py

    from multiprocessing.managers import BaseManager
    from Queue import Queue
    
    task_queue = Queue()
    result_queue = Queue()
    
    if __name__ == '__main__':
        manager = BaseManager(address=("127.0.0.1", 3000), authkey="key")
        manager.register(typeid="get_task_queue", callable=lambda: task_queue)
        manager.register(typeid="get_result_queue", callable=lambda: result_queue)
        manager.start()
    
        task_queue = manager.__getattribute__("get_task_queue")()  # type:Queue
        result_queue = manager.__getattribute__("get_result_queue")()  # type:Queue
        for i in range(1, 10):
            task_queue.put(i)
    
        for i in range(1, 10):
            result = result_queue.get()
            print(result)
            result_queue.task_done()
            task_queue.task_done()
    
        result_queue.join()
        task_queue.join()
    
    

    worker.py

    from multiprocessing.managers import BaseManager
    from Queue import Queue
    
    if __name__ == '__main__':
        manager = BaseManager(address=("127.0.0.1", 3000), authkey="key")
        manager.register("get_task_queue")
        manager.register("get_result_queue")
        manager.connect()
        task_queue = manager.__getattribute__("get_task_queue")()  # type:Queue
        result_queue = manager.__getattribute__("get_result_queue")()  # type:Queue
    
        while not task_queue.empty():
            task = task_queue.get()
            result_queue.put(task * task)
    
    

    先运行manager,再运行worker。

    相关文章

      网友评论

          本文标题:python 分布式demo

          本文链接:https://www.haomeiwen.com/subject/yiluoctx.html