python3 multiprocessing 调用上传图片api 笔记

上次是用的 多线程 上传 图片 我要改为用多进程 试一试

然后

# -*- coding:utf-8 *-
# auth : cy
# update :
import getpass
import os
import random
import multiprocessing
from configparser import ConfigParser
from time import time, sleep
from Page.api.BuilderBaseFunc import get_ws_driver
from Page.api.builder_api import login, upload_images_process
from Page.image_conversion_md5 import get_md5, get_folder_file_path
from run_path import setting_path


def multi_process_upload_images(process_num=None):
    stat_time = time()
    file_path = r'C:\Users\%s\Desktop\test_photo' % (str(getpass.getuser()))
    config = ConfigParser()
    config.read(setting_path())
    ws_url = config.get('testUrl', 'ws_test_url')
    username = config.get('labor', 'Wuhuigang')
    password = '123456'
    ws_driver = get_ws_driver(ws_url)
    sid = login(ws_driver, username, password)
    all_images_path_list = get_folder_file_path(file_path)
    print(len(all_images_path_list))
    md5_list = get_md5(all_images_path_list)
    p = multiprocessing.Pool(process_num)
    for i in range(len(all_images_path_list)):
        p.apply_async(upload_images_process, args=(sid['data']['sid'], md5_list[i], all_images_path_list[i]))
    p.close()
    p.join()
    print('run time ', time()-stat_time)


def run_process(name):
    print('run child process %s (%s)...' % (name, os.getpid()))


def long_time_task(name):
    print('run task %s (%s)' % (name, os.getpid()))
    start = time()
    sleep(random.random()*3)
    end = time()-start
    print('task run %s time (%0.2f)'% (name, end))

if __name__ == '__main__':
    multi_process_upload_images(5)
    # print('parent process', os.getpid())
    # p = multiprocessing.Pool(2)  # 线程数
    # for i in range(5):
    #     p.apply_async(long_time_task, args=('cy',))
    # print('wait for all subprocess done..')
    # p.close()
    # p.join()
    # print('all subprocess done..')
    # p = multiprocessing.Process(target=run_process, args=('cy',))
    # print('child will start..')
    # p.start()
    # p.join()
    # print('child process end')



然后就搞定了 多进程  的 优缺点 慢慢去发现吧
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值