minor improvements on scheduling

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1903 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2007-08-10 11:23:07 +00:00
parent de87f1ff91
commit e140e0eccc
2 changed files with 8 additions and 8 deletions

View file

@ -137,7 +137,7 @@ How does this work?
>>> from time import time >>> from time import time
>>> scheduler = agent.scheduler >>> scheduler = agent.scheduler
>>> scheduler.schedule(TestJob(), int(time())) >>> scheduler.schedule(TestJob())
>>> tester.iterate() >>> tester.iterate()
executing executing
@ -150,9 +150,9 @@ classes from the testing package.
>>> crawlJob = crawl.CrawlingJob() >>> crawlJob = crawl.CrawlingJob()
>>> transporter = transport.Transporter(agent) >>> transporter = transport.Transporter(agent)
>>> transportJob = transporter.jobFactory(transporter) >>> transportJob = transporter.createJob()
>>> crawlJob.successors.append(transportJob) >>> crawlJob.successors.append(transportJob)
>>> scheduler.schedule(crawlJob, int(time())) >>> scheduler.schedule(crawlJob)
>>> tester.iterate() >>> tester.iterate()
Transferring: Dummy resource data for testing purposes. Transferring: Dummy resource data for testing purposes.
@ -166,7 +166,7 @@ Let's start with a fresh agent, directly supplying the configuration
>>> config = ''' >>> config = '''
... crawl[0].type = 'dummy' ... crawl[0].type = 'dummy'
... crawl[0].directory = '~/documents' ... crawl[0].directory = '~/documents'
... crawl[0].pattern = '.*\.doc' ... crawl[0].pattern = '*.doc'
... crawl[0].starttime = %s ... crawl[0].starttime = %s
... crawl[0].transport = 'dummy' ... crawl[0].transport = 'dummy'
... crawl[0].repeat = 0 ... crawl[0].repeat = 0

View file

@ -24,7 +24,7 @@ $Id$
from time import time from time import time
from twisted.internet import reactor from twisted.internet import reactor
from twisted.internet.defer import Deferred from twisted.internet.defer import Deferred, succeed
from zope.interface import implements from zope.interface import implements
from loops.agent.interfaces import IScheduler, IScheduledJob from loops.agent.interfaces import IScheduler, IScheduledJob
@ -44,7 +44,8 @@ class Scheduler(object):
startTime = int(time()) startTime = int(time())
job.startTime = startTime job.startTime = startTime
job.scheduler = self job.scheduler = self
# TODO: find a better key to identify jobs while startTime in self.queue:
startTime += 1
self.queue[startTime] = job self.queue[startTime] = job
reactor.callLater(startTime-int(time()), job.run) reactor.callLater(startTime-int(time()), job.run)
@ -67,8 +68,7 @@ class Job(object):
def execute(self): def execute(self):
""" Must be overridden by subclass. """ Must be overridden by subclass.
""" """
d = Deferred() return succeed('OK')
return d
def reschedule(self, startTime): def reschedule(self, startTime):
self.scheduler.schedule(self.copy(), startTime) self.scheduler.schedule(self.copy(), startTime)