renamde old SchedulerStats web console module to ScheduleQueue and made it work with the new PriorityQueue

--HG--
extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40715
This commit is contained in:
Pablo Hoffman 2009-01-13 02:49:50 +00:00
parent deb960526b
commit 95d99d51b9
4 changed files with 20 additions and 13 deletions

View File

@ -205,6 +205,17 @@ extension" is abbreviated as "WC extension".
For more information see the see the :ref:`web console documentation
<topics-webconsole>`.
Scheduler queue WC extension
----------------------------
.. module:: scrapy.contrib.webconsole.scheduler
:synopsis: Scheduler queue web console extension
.. class:: scrapy.contrib.webconsole.scheduler.SchedulerQueue
Display a list of all pending Requests in the Scheduler queue, grouped by
domain/spider.
Spider live stats WC extension
------------------------------

View File

@ -338,6 +338,7 @@ Default::
'scrapy.xpath.extension.ResponseLibxml2',
'scrapy.management.web.WebConsole',
'scrapy.management.telnet.TelnetConsole',
'scrapy.contrib.webconsole.scheduler.SchedulerQueue',
'scrapy.contrib.webconsole.livestats.LiveStats',
'scrapy.contrib.webconsole.spiderctl.Spiderctl',
'scrapy.contrib.webconsole.enginestatus.EngineStatus',

View File

@ -82,6 +82,7 @@ EXTENSIONS = [
'scrapy.xpath.extension.ResponseLibxml2',
'scrapy.management.web.WebConsole',
'scrapy.management.telnet.TelnetConsole',
'scrapy.contrib.webconsole.scheduler.SchedulerQueue',
'scrapy.contrib.webconsole.livestats.LiveStats',
'scrapy.contrib.webconsole.spiderctl.Spiderctl',
'scrapy.contrib.webconsole.enginestatus.EngineStatus',

View File

@ -1,16 +1,14 @@
"""
Scheduler information module for Scrapy webconsole
Scheduler queue web console module
FIXME: this webconsole extension needs to be fixed after we removed
PriorityStack/Queue from the scheduler and replace them by bisect or something
like that.
See documentation in docs/ref/extensions.rst
"""
from pydispatch import dispatcher
from scrapy.core.engine import scrapyengine
from scrapy.management.web import banner, webconsole_discover_module
class SchedulerStats(object):
class SchedulerQueue(object):
webconsole_id = 'scheduler'
webconsole_name = 'Scheduler queue'
@ -23,16 +21,12 @@ class SchedulerStats(object):
def webconsole_render(self, wc_request):
s = banner(self)
s += "<ul>\n"
for domain, requests in scrapyengine.scheduler.pending_requests.iteritems():
for domain, request_queue in scrapyengine.scheduler.pending_requests.iteritems():
s += "<li>\n"
s += "%s (<b>%s</b> pages)\n" % (domain, len(requests))
s += "%s (<b>%s</b> requests)\n" % (domain, len(request_queue))
s += "<ul>\n"
# requests is a tuple of request and deffered now, as I understand
for r, d in requests:
if hasattr(r, 'url'):
s += "<li><a href='%s'>%s</a></li>\n" % (r.url, r.url)
#else:
# s += "<li>%s</li>\n" % (repr(r))
for ((req, _), prio) in request_queue:
s += "<li><a href='%s'>%s</a> (priority: %d)</li>\n" % (req.url, req.url, prio)
s += "</ul>\n"
s += "</li>\n"
s += "</ul>\n"