【发布时间】:2019-03-30 13:38:49
【问题描述】:
我正在使用Scrapy-splash,但我的内存有问题。我可以清楚地看到dockerpython3 使用的内存在逐渐增加,直到PC 死机。
无法弄清楚它为什么会这样,因为我有 CONCURRENT_REQUESTS=3 并且不可能 3 HTML 消耗 10GB RAM。
所以有一种解决方法可以将maxrss 设置为某个合理的值。当 RAM 使用率具有此值时,docker 会重新启动,因此 RAM 会被刷新。
但问题是,在docker 关闭期间,scrapy 继续发送请求,因此有几个urls 没有被删除。重试中间件正在尝试立即重试这些请求,然后放弃。
[scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://www.ex.com/eiB3t/ via http://127.0.0.1:8050/execute> (failed 2 times): [<twisted.python.failure.Failure twisted.internet.error.ConnectionDone: Connection was closed cleanly.>]
2019-03-30 14:28:33 [scrapy.downloadermiddlewares.retry] DEBUG: Gave up retrying <GET https://www.ex.com/eiB3t/
所以我有两个问题
- 您知道更好的解决方案吗?
- 如果没有,我如何在一段时间后将
Scrapy设置为retry请求(假设是在分钟,所以docker有时间重新启动)?
【问题讨论】:
标签: python docker scrapy splash-screen