From 88417a3ed1d5df5c919d4cd2279d17d6c8d0ce39 Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Wed, 25 Nov 2009 22:51:58 -0200 Subject: [PATCH] Fixed bug in LiveStats webconsole module which was keeping references to spiders alive, after they were closed --- scrapy/contrib/webconsole/livestats.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/scrapy/contrib/webconsole/livestats.py b/scrapy/contrib/webconsole/livestats.py index 2c1d6bec4..22afc20c1 100644 --- a/scrapy/contrib/webconsole/livestats.py +++ b/scrapy/contrib/webconsole/livestats.py @@ -12,7 +12,6 @@ class SpiderStats(object): self.scraped = 0 self.crawled = 0 self.started = None - self.finished = None class LiveStats(object): webconsole_id = 'livestats' @@ -31,10 +30,9 @@ class LiveStats(object): pstats = SpiderStats() self.domains[spider] = pstats pstats.started = datetime.now().replace(microsecond=0) - pstats.finished = None def spider_closed(self, spider): - self.domains[spider].finished = datetime.now().replace(microsecond=0) + del self.domains[spider] def item_scraped(self, item, spider): self.domains[spider].scraped += 1 @@ -52,17 +50,17 @@ class LiveStats(object): totdomains = totscraped = totcrawled = totscheduled = totactive = totdqueued = tottransf = 0 s = banner(self) s += "\n" - s += "\n" + s += "\n" for spider in sorted(self.domains.keys()): scheduled = len(sch.pending_requests[spider]) if spider in sch.pending_requests else 0 active = len(dwl.sites[spider].active) if spider in dwl.sites else 0 dqueued = len(dwl.sites[spider].queue) if spider in dwl.sites else 0 transf = len(dwl.sites[spider].transferring) if spider in dwl.sites else 0 stats = self.domains[spider] - runtime = stats.finished - stats.started if stats.finished else datetime.now() - stats.started + runtime = datetime.now() - stats.started - s += '\n' % \ - (spider.domain_name, stats.scraped, stats.crawled, scheduled, dqueued, active, transf, str(stats.started), str(stats.finished), str(runtime)) + s += '\n' % \ + (spider.domain_name, stats.scraped, stats.crawled, scheduled, dqueued, active, transf, str(stats.started), str(runtime)) totdomains += 1 totscraped += stats.scraped
SpiderItems
Scraped
Pages
Crawled
Scheduler
Pending
Downloader
Queued
Downloader
Active
Downloader
Transferring
Start timeFinish timeRun time
SpiderItems
Scraped
Pages
Crawled
Scheduler
Pending
Downloader
Queued
Downloader
Active
Downloader
Transferring
Start timeRun time
%s%d%d%d%d%d%d%s%s%s
%s%d%d%d%d%d%d%s%s