diff options
author | Rob Austein <sra@hactrn.net> | 2009-07-15 03:33:57 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2009-07-15 03:33:57 +0000 |
commit | bd4c8a7f0601d31e479a53ac3063fe813b39588f (patch) | |
tree | 409f80311d5c42f4805e709e9fba5b7e6688b957 /rpkid | |
parent | 0843d6b855c64e7f8289174f6ffb044566bd698c (diff) |
Rework cron() code
svn path=/rpkid/rpki/rpki_engine.py; revision=2621
Diffstat (limited to 'rpkid')
-rw-r--r-- | rpkid/rpki/rpki_engine.py | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/rpkid/rpki/rpki_engine.py b/rpkid/rpki/rpki_engine.py index 78c29966..9a84c294 100644 --- a/rpkid/rpki/rpki_engine.py +++ b/rpkid/rpki/rpki_engine.py @@ -223,16 +223,28 @@ class rpkid_context(object): one() + def sched(): + when = rpki.sundial.now() + rpki.sundial.timedelta(seconds = self.cron_period) + rpki.log.debug("Scheduling next cron run at %s" % when) + rpki.async.timer(handler = self.cron).set(when) + def done(): self.sql.sweep() - if cb is not None: - cb() + if self.use_internal_clock: + sched() else: - when = rpki.sundial.now() + rpki.sundial.timedelta(seconds = self.cron_period) - rpki.log.debug("Scheduling next cron run at %s" % when) - rpki.async.timer(handler = self.cron).set(when) + cb() - rpki.async.iterator(rpki.left_right.self_elt.sql_fetch_all(self), loop, done) + try: + rpki.async.iterator(rpki.left_right.self_elt.sql_fetch_all(self), loop, done) + except (rpki.async.ExitNow, SystemExit): + raise + except Exception, data: + if self.use_internal_clock: + rpki.log.traceback() + sched() + else: + raise def cronjob_handler(self, query, path, cb): """ |