diff options
author | Jay Faulkner <jay@jvf.cc> | 2014-03-24 14:31:10 -0700 |
---|---|---|
committer | Devananda van der Veen <devananda.vdv@gmail.com> | 2014-03-25 11:50:09 -0700 |
commit | 026d71b4d599edd756ba925e99c7e13aff4551cd (patch) | |
tree | 04c85a2ff72df1ca66cf0f318e00b5d3fd9272c1 | |
parent | d1293ba400b7c042bb34e995cd14e2fd32db8d02 (diff) | |
download | ironic-026d71b4d599edd756ba925e99c7e13aff4551cd.tar.gz |
Run periodic_task in a with a dynamic timer
In ironic.common.service, Ironic was running the periodic task loop
every periodic_interval (60s by default) seconds. This means that any
periodic task configured with an interval shorter than periodic_interval
was only getting run every periodic_interval seconds.
I reconfigured periodic tasks to run in a dynamic loop, where
now the periodic task loop will run every min(periodic_interval,
next_run) seconds.
Change-Id: I17a270ecbb5fd53149a89816f4be1c9a0c27b541
Closes-Bug: 1295874
-rw-r--r-- | ironic/common/service.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ironic/common/service.py b/ironic/common/service.py index b8a83c7dd..14e019a06 100644 --- a/ironic/common/service.py +++ b/ironic/common/service.py @@ -48,9 +48,10 @@ class PeriodicService(rpc_service.Service, periodic_task.PeriodicTasks): def start(self): super(PeriodicService, self).start() admin_context = context.RequestContext('admin', 'admin', is_admin=True) - self.tg.add_timer(cfg.CONF.periodic_interval, - self.manager.periodic_tasks, - context=admin_context) + self.tg.add_dynamic_timer( + self.manager.periodic_tasks, + periodic_interval_max=cfg.CONF.periodic_interval, + context=admin_context) def prepare_service(argv=[]): |