首页 > 其他 > 详细

爬虫技术:分布式

时间:2019-09-01 23:56:38      阅读:131      评论:0      收藏:0      [点我收藏+]

1.简单的分布式流程图

技术分享图片

分布式:

import multiprocessing
import multiprocessing.managers  # 进程管理器
import random,time
# 分布式进程

task_queue = multiprocessing.Queue()  # 任务
resule_queue = multiprocessing.Queue()  # 结果

def return_task():
    """
    :return:  任务队列
    """
    return task_queue


def return_result():
    """
    :return: 结果队列
    """
    return resule_queue


# 创建管理器类
class QueueManager(multiprocessing.managers.BaseManager):
    """
    进程管理器,实现队列和客户端共享
    """
    pass

if __name__ == __main__:
    multiprocessing.freeze_support()  # 开启分布式支持
    QueueManager.register("get_task",callable=return_task)  # 注册函数给客户端调用
    QueueManager.register("get_result",callable=return_result)   # 注册函数给客户端调用

    manager = QueueManager(address=("192.168.33.39",8888),authkey=123456)  # 创建管理器,绑定ip、port和链接密码
    # 开启管理器实例
    manager.start()

    task = manager.get_task()
    result = manager.get_result()

    # 初始化数据
    for i in range(10000):
        print("给任务队列里面放入数据:{}".format(i))
        task.put(i)

    print("---" * 100)

    for i in range(10000):
        ret = result.get()
        print("从结果队列中取出数据:{}".format(ret))

    # 关闭服务器
    manager.shutdown
import multiprocessing
import multiprocessing.managers  # 进程管理器
import random,time
# 分布式进程

task_queue = multiprocessing.Queue()  # 任务
result_queue = multiprocessing.Queue()  # 结果


# 创建管理器类
class QueueManager(multiprocessing.managers.BaseManager):
    """
    进程管理器,实现队列和客户端共享
    """
    pass

if __name__ == __main__:

    QueueManager.register("get_task")  # 注册函数调用服务器
    QueueManager.register("get_result")   # 注册函数调用服务器

    manager = QueueManager(address=("192.168.33.39",8888),authkey=123456)  # 创建管理器,绑定ip、port和链接密码

    # 链接服务器
    manager.connect()

    task = manager.get_task()

    result = manager.get_result()

    for i in range(10000):
        data = task.get()
        print("客户端获取任务队列中的数据")
        data += 10
        print("客户端将加工过的数据放入结果队列中")
        result.put(data)

 

爬虫技术:分布式

原文:https://www.cnblogs.com/meloncodezhang/p/11443749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!