Show
Ignore:
Timestamp:
11/14/09 20:28:59 (10 months ago)
Author:
Pablo Hoffman <pablo@…>
Branch:
default
Message:

StatsCollector?: ported methods to receive spider instances (closes #113), removed list_domains() method, added iter_spider_stats() method

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • scrapy/contrib/corestats.py

    r1645 r1849  
    1111from scrapy.core import signals 
    1212from scrapy.stats import stats 
    13 from scrapy.stats.signals import stats_domain_opened, stats_domain_closing 
     13from scrapy.stats.signals import stats_spider_opened, stats_spider_closing 
    1414from scrapy.conf import settings 
    1515 
     
    2323        stats.set_value('envinfo/pid', os.getpid()) 
    2424 
    25         dispatcher.connect(self.stats_domain_opened, signal=stats_domain_opened) 
    26         dispatcher.connect(self.stats_domain_closing, signal=stats_domain_closing) 
     25        dispatcher.connect(self.stats_spider_opened, signal=stats_spider_opened) 
     26        dispatcher.connect(self.stats_spider_closing, signal=stats_spider_closing) 
    2727        dispatcher.connect(self.item_scraped, signal=signals.item_scraped) 
    2828        dispatcher.connect(self.item_passed, signal=signals.item_passed) 
    2929        dispatcher.connect(self.item_dropped, signal=signals.item_dropped) 
    3030 
    31     def stats_domain_opened(self, domain): 
    32         stats.set_value('start_time', datetime.datetime.utcnow(), domain=domain) 
    33         stats.set_value('envinfo/host', stats.get_value('envinfo/host'), domain=domain) 
    34         stats.inc_value('domain_count/opened') 
     31    def stats_spider_opened(self, spider): 
     32        stats.set_value('start_time', datetime.datetime.utcnow(), spider=spider) 
     33        stats.set_value('envinfo/host', stats.get_value('envinfo/host'), spider=spider) 
     34        stats.inc_value('spider_count/opened') 
    3535 
    36     def stats_domain_closing(self, domain, reason): 
    37         stats.set_value('finish_time', datetime.datetime.utcnow(), domain=domain) 
    38         stats.set_value('finish_status', 'OK' if reason == 'finished' else reason, domain=domain) 
    39         stats.inc_value('domain_count/%s' % reason, domain=domain) 
     36    def stats_spider_closing(self, spider, reason): 
     37        stats.set_value('finish_time', datetime.datetime.utcnow(), spider=spider) 
     38        stats.set_value('finish_status', 'OK' if reason == 'finished' else reason, spider=spider) 
     39        stats.inc_value('spider_count/%s' % reason, spider=spider) 
    4040 
    4141    def item_scraped(self, item, spider): 
    42         stats.inc_value('item_scraped_count', domain=spider.domain_name) 
     42        stats.inc_value('item_scraped_count', spider=spider) 
    4343        stats.inc_value('item_scraped_count') 
    4444 
    4545    def item_passed(self, item, spider): 
    46         stats.inc_value('item_passed_count', domain=spider.domain_name) 
     46        stats.inc_value('item_passed_count', spider=spider) 
    4747        stats.inc_value('item_passed_count') 
    4848 
    4949    def item_dropped(self, item, spider, exception): 
    5050        reason = exception.__class__.__name__ 
    51         stats.inc_value('item_dropped_count', domain=spider.domain_name) 
    52         stats.inc_value('item_dropped_reasons_count/%s' % reason, domain=spider.domain_name) 
     51        stats.inc_value('item_dropped_count', spider=spider) 
     52        stats.inc_value('item_dropped_reasons_count/%s' % reason, spider=spider) 
    5353        stats.inc_value('item_dropped_count')