我正在使用 Celery 来自动化一些屏幕抓取。我正在使用 Selenium 打开 Chrome 网络驱动程序,操作页面,保存一些数据,然后转到队列中的下一页。问题是它为队列中的每个任务构建和分解 Web 驱动程序,这非常耗时且资源密集。
如何跨调用持久化对象?我已经阅读了一些关于 Celery 中连接池的内容,但我不清楚它是如何工作的——我在哪里构建 webdriver——在任务文件或主队列文件中?如果是后者,工作人员如何知道要使用哪个 webdriver?
例子:
刮.py:
for page in list:
scrape.delay(str(row['product_id']), str(row['pg_code']))
任务.py:
def scrape:
# do some stuff