1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-25 20:44:18 +00:00

removed undocumented (and untested) extension: SpiderCloseDelay

This commit is contained in:
Pablo Hoffman 2011-05-27 11:52:33 -03:00
parent 6c369c50ca
commit 13d8066788

View File

@ -1,39 +0,0 @@
"""
SpiderCloseDelay is an extension that keeps a idle spiders open until a
configurable amount of idle time has elapsed
"""
from time import time
from scrapy.xlib.pydispatch import dispatcher
from collections import defaultdict
from scrapy import signals
from scrapy.project import crawler
from scrapy.exceptions import NotConfigured, DontCloseSpider
from scrapy.conf import settings
class SpiderCloseDelay(object):
def __init__(self):
self.delay = settings.getint('SPIDER_CLOSE_DELAY')
if not self.delay:
raise NotConfigured
self.opened_at = defaultdict(time)
dispatcher.connect(self.spider_idle, signal=signals.spider_idle)
dispatcher.connect(self.spider_closed, signal=signals.spider_closed)
def spider_idle(self, spider):
try:
lastseen = crawler.engine.downloader.sites[spider].lastseen
except KeyError:
lastseen = None
if not lastseen:
lastseen = self.opened_at[spider]
if time() < lastseen + self.delay:
raise DontCloseSpider
def spider_closed(self, spider):
self.opened_at.pop(spider, None)