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

Python多线程:如何为每个监控URL分配独立并发线程并异步执行任务?

商品监控多线程PoC项目开发卡点

项目基础信息

这是用于练习Threading方向技术能力的小型PoC项目,核心目标是监控指定电商站点目录页的商品上新情况,当前开发过程中遇到实现卡点,现有基础代码如下:

import time

found_products = []

site_catalog = [
    "https://www.graffitishop.net/Sneakers",
    "https://www.graffitishop.net/T-shirts",
    "https://www.graffitishop.net/Sweatshirts",
    "https://www.graffitishop.net/Shirts"
]


def threading_feeds():
    # 设计目标:为每个URL创建独立线程,实现并发运行而非串行执行
    for get_links in site_catalog:
        monitor_feed(link=get_links)


def monitor_feed(link: str) -> None:
    old_payload = product_data(...)

    while True:
        new_payload = product_data(...)

        if old_payload != new_payload:
            for links in new_payload:
                if links not in found_products:
                    logger.info(f'Detected new link -> {found_link} | From -> {link}')
                    # 设计目标:调用filtering时不阻塞当前主监控循环
                    filtering(link=found_link)

        else:
            logger.info("Nothing new")
            time.sleep(60)
            continue


def filtering(found_link):
    ...

待实现需求

  • 需求1:优化threading_feeds函数,让每个待监控的目录链接能够独立并发运行,而非按顺序串行等待单个链接的监控流程执行完毕后再启动下一个
  • 需求2:在monitor_feed函数运行过程中,一旦检测到对应目录下出现新商品,为filtering(link=found_link)的调用创建独立后台线程,保证filtering在后台运行的同时,不阻塞当前monitor_feed的while True主监控循环,无需等待filtering执行完成即可继续后续监控流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 13:57:02