zoukankan      html  css  js  c++  java
  • 进程池callback

    from multiprocessing import Pool
    import requests
    import json
    import os
    
    def get_page(url):
        print('%s get %s'%(os.getpid(),url))
        res=requests.get(url)
        if res.status_code == 200:
            return {'url':url,'text':res.text}     #这个字典直接传给callback函数处理
    
    def parse_page(res):
        print('%s parse %s'%(os.getpid(),res['url']))
        parse_res='url:%s size:%s
    '%(res['url'],len(res['text']))
        with open('db.txt','a+') as f:
            f.write(parse_res)
    if __name__=='__main__':
        urls = [
            'https://www.baidu.com',
            'https://www.python.org',
            'https://www.openstack.org',
            'https://help.github.com/',
            'http://www.sina.com.cn/'
        ]
        p=Pool(3)
        res_list=[]
        for url in urls:
            res=p.apply_async(get_page,args=(url,),callback=parse_page) #res拿到的是get_page的结果,
            res_list.append(res)
        p.close()
        p.join()
        print(res_list)
    
        # for res in res_list:
        #     print(res.get()) 打印字典

    4200 get https://www.baidu.com
    9392 get https://www.python.org
    11912 get https://www.openstack.org
    4200 get https://help.github.com/
    11828 parse https://www.baidu.com
    11912 get http://www.sina.com.cn/
    11828 parse https://www.openstack.org
    11828 parse https://www.python.org
    11828 parse https://help.github.com/
    11828 parse http://www.sina.com.cn/
    [<multiprocessing.pool.ApplyResult object at 0x02B37330>, <multiprocessing.pool.ApplyResult object at 0x02B37390>, <multiprocessing.pool.ApplyResult object at 0x02B373F0>, <multiprocessing.pool.ApplyResult object at 0x02B37450>, <multiprocessing.pool.ApplyResult object at 0x02B374B0>]
    <multiprocessing.pool.ApplyResult object at 0x02B374B0>

    
    

    Process finished with exit code 0



  • 相关阅读:
    接口--类似于抽象类但不是抽象类
    final
    抽象类
    static示例
    深入理解static关键字
    IDEA 出现错误:找不到或无法加载主类
    IDEA的java源码文件左边有一个红色的J
    this关键字
    构造方法、方法的重载
    访问控制符
  • 原文地址:https://www.cnblogs.com/wuxi9864/p/9990232.html
Copyright © 2011-2022 走看看