From 4dadeb7ccb7386fa1859f63a60e47b2ee4537ea4 Mon Sep 17 00:00:00 2001 From: Daniel Grana Date: Fri, 15 Jul 2011 13:57:24 -0300 Subject: [PATCH] fix issue with responses preventing spiders to be idle in engine counts --- scrapy/core/engine.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/scrapy/core/engine.py b/scrapy/core/engine.py index a88429cdc..df409f3ba 100644 --- a/scrapy/core/engine.py +++ b/scrapy/core/engine.py @@ -179,16 +179,14 @@ class ExecutionEngine(object): def download(self, request, spider): slot = self.slots[spider] slot.add_request(request) - if isinstance(request, Response): - return request d = self._download(request, spider) - d.addCallback(self.download, spider) - d.addBoth(self._remove_request, slot, request) + d.addBoth(self._downloaded, slot, request, spider) return d - def _remove_request(self, _, slot, request): + def _downloaded(self, response, slot, request, spider): slot.remove_request(request) - return _ + return self.download(response, spider) \ + if isinstance(response, Request) else response def _download(self, request, spider): slot = self.slots[spider]