Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/Celery/Selenium连续任务(避免重新打开浏览器)_Python_Selenium_Celery - Fatal编程技术网

Python/Celery/Selenium连续任务(避免重新打开浏览器)

Python/Celery/Selenium连续任务(避免重新打开浏览器),python,selenium,celery,Python,Selenium,Celery,我使用selenium的最大问题是浏览器的重新打开时间太长(每隔几分钟就用它刮一次)。我还使用代理,并使用python线程运行多个浏览器——每几分钟启动/停止一次(当新作业到来时) 线程化还意味着只使用1个CPU,性能会受到影响 我一直在考虑开始使用芹菜(即开箱即用的多核支持),让workers(不同的代理/浏览器)无限期地运行(同时循环),打开selenium浏览器实例,等待通过redis之类的东西获得准确的URL来获取提要 用芹菜来运行这样的连续任务是个好主意吗?有更好的方法吗?无限期地保存

我使用selenium的最大问题是浏览器的重新打开时间太长(每隔几分钟就用它刮一次)。我还使用代理,并使用python线程运行多个浏览器——每几分钟启动/停止一次(当新作业到来时)

线程化还意味着只使用1个CPU,性能会受到影响

我一直在考虑开始使用芹菜(即开箱即用的多核支持),让workers(不同的代理/浏览器)无限期地运行(同时循环),打开selenium浏览器实例,等待通过redis之类的东西获得准确的URL来获取提要


用芹菜来运行这样的连续任务是个好主意吗?有更好的方法吗?

无限期地保存selenium的开放实例从来都不是个好主意, 最佳做法是重新打开每个任务

所以对于你的问题,我认为这不是一个好主意

让我为您提供另一种体系结构

使用
Docker
运行selenium机器,
基本创建(谷歌的第一个结果) 使用Docker

一旦一切设置正确,任务将变得简单,通过多处理将所有作业并行发送到selenium中心,
它们将在您需要的任意多个容器上同时运行。
工作完成后,您可以销毁容器并重新开始下一个循环


使用docker还可以让您非常轻松地扩展操作

无限期地保留selenium的开放实例从来都不是一个好主意, 最佳做法是重新打开每个任务

所以对于你的问题,我认为这不是一个好主意

让我为您提供另一种体系结构

使用
Docker
运行selenium机器,
基本创建(谷歌的第一个结果) 使用Docker

一旦一切设置正确,任务将变得简单,通过多处理将所有作业并行发送到selenium中心,
它们将在您需要的任意多个容器上同时运行。
工作完成后,您可以销毁容器并重新开始下一个循环

使用docker还可以让您非常轻松地缩放操作