Change name, log once

This commit is contained in:
Darshan Chaudhary 2015-11-21 00:40:01 +05:30 committed by darshanime
parent ec1c61504a
commit 472a8a47d0
4 changed files with 20 additions and 4 deletions

View File

@ -96,4 +96,6 @@ But this will::
somearg = response.meta['somearg']
print "the argument passed is:", somearg
If you wish to log the requests that couldn't be serialized, you can set the ``SCHEDULER_DEBUG`` setting to ``True`` in the project's settings page. It is ``False`` by default.
.. _pickle: http://docs.python.org/library/pickle.html

View File

@ -1026,6 +1026,16 @@ Default: ``'scrapy.core.scheduler.Scheduler'``
The scheduler to use for crawling.
.. setting:: SCHEDULER_DEBUG
SCHEDULER_DEBUG
---------------
Default: ``False``
Setting to ``True`` will log the first unserializable request encountered.
Stats collected.
.. setting:: SPIDER_CONTRACTS
SPIDER_CONTRACTS

View File

@ -30,7 +30,7 @@ class Scheduler(object):
pqclass = load_object(settings['SCHEDULER_PRIORITY_QUEUE'])
dqclass = load_object(settings['SCHEDULER_DISK_QUEUE'])
mqclass = load_object(settings['SCHEDULER_MEMORY_QUEUE'])
logunser = settings.getbool('LOG_UNSERIALIZABLE_REQUESTS')
logunser = settings.getbool('SCHEDULER_DEBUG')
return cls(dupefilter, jobdir=job_dir(settings), logunser=logunser,
stats=crawler.stats, pqclass=pqclass, dqclass=dqclass, mqclass=mqclass)
@ -86,9 +86,13 @@ class Scheduler(object):
self.dqs.push(reqd, -request.priority)
except ValueError as e: # non serializable request
if self.logunser:
logger.error("Unable to serialize request: %(request)s - reason: %(reason)s",
{'request': request, 'reason': e},
msg = ("Unable to serialize request: %(request)s - reason: %(reason)s"
" - no more unserializable requests will be logged"
" (stats being collected)")
logger.error(msg, {'request': request, 'reason': e},
exc_info=True, extra={'spider': self.spider})
self.logunser = False
self.stats.inc_value('scheduler/unserializable', spider=self.spider)
return
else:
return True

View File

@ -191,7 +191,7 @@ LOG_STDOUT = False
LOG_LEVEL = 'DEBUG'
LOG_FILE = None
LOG_UNSERIALIZABLE_REQUESTS = False
SCHEDULER_DEBUG = False
LOGSTATS_INTERVAL = 60.0