aboutsummaryrefslogtreecommitdiff
path: root/rpkid
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2009-07-15 03:33:57 +0000
committerRob Austein <sra@hactrn.net>2009-07-15 03:33:57 +0000
commitbd4c8a7f0601d31e479a53ac3063fe813b39588f (patch)
tree409f80311d5c42f4805e709e9fba5b7e6688b957 /rpkid
parent0843d6b855c64e7f8289174f6ffb044566bd698c (diff)
Rework cron() code
svn path=/rpkid/rpki/rpki_engine.py; revision=2621
Diffstat (limited to 'rpkid')
-rw-r--r--rpkid/rpki/rpki_engine.py24
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):
"""