Python/Celery/Selenium连续任务(避免重新打开浏览器)
我使用selenium的最大问题是浏览器的重新打开时间太长(每隔几分钟就用它刮一次)。我还使用代理,并使用python线程运行多个浏览器——每几分钟启动/停止一次(当新作业到来时) 线程化还意味着只使用1个CPU,性能会受到影响 我一直在考虑开始使用芹菜(即开箱即用的多核支持),让workers(不同的代理/浏览器)无限期地运行(同时循环),打开selenium浏览器实例,等待通过redis之类的东西获得准确的URL来获取提要Python/Celery/Selenium连续任务(避免重新打开浏览器),python,selenium,celery,Python,Selenium,Celery,我使用selenium的最大问题是浏览器的重新打开时间太长(每隔几分钟就用它刮一次)。我还使用代理,并使用python线程运行多个浏览器——每几分钟启动/停止一次(当新作业到来时) 线程化还意味着只使用1个CPU,性能会受到影响 我一直在考虑开始使用芹菜(即开箱即用的多核支持),让workers(不同的代理/浏览器)无限期地运行(同时循环),打开selenium浏览器实例,等待通过redis之类的东西获得准确的URL来获取提要 用芹菜来运行这样的连续任务是个好主意吗?有更好的方法吗?无限期地保存
用芹菜来运行这样的连续任务是个好主意吗?有更好的方法吗?无限期地保存selenium的开放实例从来都不是个好主意, 最佳做法是重新打开每个任务 所以对于你的问题,我认为这不是一个好主意 让我为您提供另一种体系结构 使用
Docker
运行selenium机器,基本创建(谷歌的第一个结果) 使用Docker 一旦一切设置正确,任务将变得简单,通过多处理将所有作业并行发送到selenium中心,
它们将在您需要的任意多个容器上同时运行。
工作完成后,您可以销毁容器并重新开始下一个循环
使用docker还可以让您非常轻松地扩展操作无限期地保留selenium的开放实例从来都不是一个好主意, 最佳做法是重新打开每个任务 所以对于你的问题,我认为这不是一个好主意 让我为您提供另一种体系结构 使用
Docker
运行selenium机器,基本创建(谷歌的第一个结果) 使用Docker 一旦一切设置正确,任务将变得简单,通过多处理将所有作业并行发送到selenium中心,
它们将在您需要的任意多个容器上同时运行。
工作完成后,您可以销毁容器并重新开始下一个循环 使用docker还可以让您非常轻松地缩放操作