From 8b3f327df03d2ca530d094342710ff3f75ae3934 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Thu, 22 Mar 2012 23:50:36 +0000 Subject: Add periodic_fuzzy_delay option. Fixes bug 962665 This random delay is intended to reduce the stampeding behavior associated with periodic tasks when compute workers are restarted in unison across a cluster. Change-Id: Ie3771d94af29049061c129b8ea562ee447a61771 --- nova/utils.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'nova/utils.py') diff --git a/nova/utils.py b/nova/utils.py index 819929a81..29df28cea 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -687,13 +687,14 @@ class LoopingCall(object): self.f = f self._running = False - def start(self, interval, now=True): + def start(self, interval, initial_delay=None): self._running = True done = event.Event() def _inner(): - if not now: - greenthread.sleep(interval) + if initial_delay: + greenthread.sleep(initial_delay) + try: while self._running: self.f(*self.args, **self.kw) -- cgit