From a83c276aa2861636ce57e323d40e6de5532ec694 Mon Sep 17 00:00:00 2001 From: Ruud Date: Sun, 31 Mar 2013 23:50:47 +0200 Subject: [PATCH] Schedule start normal --- couchpotato/core/_base/scheduler/main.py | 46 ++++++-------------------------- 1 file changed, 8 insertions(+), 38 deletions(-) diff --git a/couchpotato/core/_base/scheduler/main.py b/couchpotato/core/_base/scheduler/main.py index 4102552..2c97e1b 100644 --- a/couchpotato/core/_base/scheduler/main.py +++ b/couchpotato/core/_base/scheduler/main.py @@ -16,52 +16,20 @@ class Scheduler(Plugin): addEvent('schedule.cron', self.cron) addEvent('schedule.interval', self.interval) - addEvent('schedule.start', self.start) - addEvent('schedule.restart', self.start) - - addEvent('app.load', self.start) + addEvent('schedule.remove', self.remove) self.sched = Sched(misfire_grace_time = 60) + self.sched.start() + self.started = True def remove(self, identifier): - for type in ['interval', 'cron']: + for cron_type in ['intervals', 'crons']: try: - self.sched.unschedule_job(getattr(self, type)[identifier]['job']) - log.debug('%s unscheduled %s', (type.capitalize(), identifier)) + self.sched.unschedule_job(getattr(self, cron_type)[identifier]['job']) + log.debug('%s unscheduled %s', (cron_type.capitalize(), identifier)) except: pass - def start(self): - - # Stop all running - self.stop() - - # Crons - for identifier in self.crons: - try: - self.remove(identifier) - cron = self.crons[identifier] - job = self.sched.add_cron_job(cron['handle'], day = cron['day'], hour = cron['hour'], minute = cron['minute']) - cron['job'] = job - except ValueError, e: - log.error('Failed adding cronjob: %s', e) - - # Intervals - for identifier in self.intervals: - try: - self.remove(identifier) - interval = self.intervals[identifier] - job = self.sched.add_interval_job(interval['handle'], hours = interval['hours'], minutes = interval['minutes'], seconds = interval['seconds']) - interval['job'] = job - except ValueError, e: - log.error('Failed adding interval cronjob: %s', e) - - # Start it - log.debug('Starting scheduler') - self.sched.start() - self.started = True - log.debug('Scheduler started') - def doShutdown(self): super(Scheduler, self).doShutdown() self.stop() @@ -82,6 +50,7 @@ class Scheduler(Plugin): 'day': day, 'hour': hour, 'minute': minute, + 'job': self.sched.add_cron_job(handle, day = day, hour = hour, minute = minute) } def interval(self, identifier = '', handle = None, hours = 0, minutes = 0, seconds = 0): @@ -93,4 +62,5 @@ class Scheduler(Plugin): 'hours': hours, 'minutes': minutes, 'seconds': seconds, + 'job': self.sched.add_interval_job(handle, hours = hours, minutes = minutes, seconds = seconds) }