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
相关产品推荐
相关产品推荐

