You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium如何实现始终保持10个Chrome实例并发执行任务

固定并发数任务调度实现方案

要实现始终保持10个任务同时运行、任务完成立即补入新任务的效果,直接使用Python标准库自带的线程池工具ThreadPoolExecutor即可,它原生支持固定最大并发数调度,不需要手动实现批次等待逻辑。

核心实现思路

  • ThreadPoolExecutor的max_workers参数指定最大同时运行的线程数为10
  • 一次性提交全部55个任务,框架会自动调度:有线程完成任务后立即分配新的待执行任务,全程维持最多10个任务并行
  • 所有任务提交后调用shutdown()即可等待全部任务执行完成

修改后完整代码

from selenium import webdriver
import time
from random import randrange
from concurrent.futures import ThreadPoolExecutor

def login_outlook():
    chrome_option = webdriver.ChromeOptions()
    driver = webdriver.Chrome(executable_path='G:/chromedriver.exe', options=chrome_option)
    driver.set_window_rect(width=500, height=800)
    url = 'https://outlook.live.com/owa/'
    driver.get(url)

    driver.find_element_by_xpath('/html/body/header/div/aside/div/nav/ul/li[2]/a').click()
    time_wait = randrange(10, 30)
    time.sleep(time_wait)
    driver.close()

if __name__ == '__main__':
    total_task = 55
    max_concurrent = 10
    # 初始化线程池,固定最大并发数
    with ThreadPoolExecutor(max_workers=max_concurrent) as executor:
        # 提交全部55个任务
        for _ in range(total_task):
            executor.submit(login_outlook)
    # 退出with块时会自动等待所有任务执行完成

代码说明

  • 替换了原手动批次管理的逻辑,避免了原代码中重复执行任务的逻辑错误
  • 全程自动维持最多10个任务并行,不存在批次等待的空窗期,执行效率远高于原批次方案
  • 不需要手动管理线程的start、join逻辑,降低线程调度出错概率

内容的提问来源于stack exchange,提问作者anhhpvnu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:15:03