2010-09-03 15:54:42 -03:00
|
|
|
from zope.interface import implements
|
|
|
|
|
|
|
|
from .interfaces import ISpiderScheduler
|
|
|
|
from .utils import get_spider_queues
|
|
|
|
|
|
|
|
class SpiderScheduler(object):
|
|
|
|
|
|
|
|
implements(ISpiderScheduler)
|
|
|
|
|
|
|
|
def __init__(self, config):
|
2010-09-22 01:04:15 -03:00
|
|
|
self.config = config
|
2010-09-03 15:54:42 -03:00
|
|
|
self.update_projects()
|
|
|
|
|
|
|
|
def schedule(self, project, spider_name, **spider_args):
|
|
|
|
q = self.queues[project]
|
|
|
|
q.add(spider_name, **spider_args)
|
|
|
|
|
|
|
|
def list_projects(self):
|
|
|
|
return self.queues.keys()
|
|
|
|
|
|
|
|
def update_projects(self):
|
2010-09-22 01:04:15 -03:00
|
|
|
self.queues = get_spider_queues(self.config)
|