在Python Celery中,如何在连续的工作调用中持久保存对象?

在Python Celery中,如何在连续的工作调用中持久保存对象?,第1张

概述我正在使用Celery来自动化一些屏幕抓取.我正在使用Selenium打开Chrome webdriver, *** 作页面,保存一些数据,然后转到队列中的下一页.问题在于它为队列中的每个任务构建和分解Web驱动程序,这非常耗时且占用大量资源. 如何在通话中保留对象?我已经阅读了有关Celery中连接池的一些内容,但我不清楚这是如何工作的 – 我在哪里构建webdriver – 在任务文件或主排队文件中? 我正在使用Celery来自动化一些屏幕抓取.我正在使用Selenium打开Chrome webdriver, *** 作页面,保存一些数据,然后转到队列中的下一页.问题在于它为队列中的每个任务构建和分解Web驱动程序,这非常耗时且占用大量资源.

如何在通话中保留对象?我已经阅读了有关Celery中连接池的一些内容,但我不清楚这是如何工作的 – 我在哪里构建webdriver – 在任务文件或主排队文件中?如果是后者,工人们如何知道使用哪个webdriver?

例:

scrape.py:

for page in List:    scrape.delay(str(row['product_ID']),str(row['pg_code']))

tasks.py:

def scrape:  # do some stuff
解决方法 由于每个worker将任务实例化为单例,因此您可以将Web驱动程序缓存在任务对象中.文档特别提出了这种方法.

http://docs.celeryproject.org/en/latest/userguide/tasks.html#instantiation

总结

以上是内存溢出为你收集整理的在Python Celery中,如何在连续的工作调用中持久保存对象?全部内容,希望文章能够帮你解决在Python Celery中,如何在连续的工作调用中持久保存对象?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1206820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存