python 执行多线程并操作数据插入或者更新-的使用示例(线程池)

 python 中多线程的使用示例

多线程执行中 如果要更新或者操作数据库,会导致数据库写入不成功,就可以通过,先执行线程,拿到线程返回值后,通过该返回值,去操作数据库

from concurrent.futures import ThreadPoolExecutor, as_completed

def get_status(info):
    try:
        title = info[0]  # 标题
        url = info[1]  # 链接地址URL
        TAG = info[2]  # 是否下载过的标记
        if TAG != 'A':
            ''' 这里写入 执行下载的方法'''
        else:
            print(f'跳过下载>>{title}<<数据已下载过')
    except Exception as e:
        print(f'数据异常>>{title}<<数据保存产生异常,异常代码{e}')
    return title  # 返回执行完毕的数据名称  用于多线程外执行其他方法 比如写数据库


def process_urls(infos):  # 执行多线程下载   传入所有要下载的数据信息
    with ThreadPoolExecutor(max_workers=5) as executor:  # 线程5 ,根据要增加或者减少
        future_to_url = {executor.submit(get_status, info): info for info in infos}
        for future in as_completed(future_to_url):  # 等待所有任务完成,并收集结果
            try:
                result = future.result()  # 获取返回值   该返回值是title
                # 以下用于 根据以上返回值需要执行的操作,,,,,,
                # 比如通过以上返回值  执行 查询数据库-->更新数据(表示该标题的URL数据已经下载)
                print(f'下载>>{result}<<数据已下载成功')
            except Exception as e:
                print(f"Error processing data: {e}")

infos = [('title1','url1','A'),('title2','url2',''),('title3','url3',''),('title4','url4',''),('title5','url5','')]
process_urls(infos)  # 调用 多线程方法 执行 下载数据

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值