#96 configurable query interval and 1 minute max backoff

This commit is contained in:
Henning Jacobs
2017-01-15 17:19:47 +01:00
parent 1b3819a290
commit 747f520d26
2 changed files with 7 additions and 5 deletions

View File

@@ -11,7 +11,7 @@ logger = logging.getLogger(__name__)
def calculate_backoff(tries: int):
return random_jitter(expo(tries, factor=2, max_value=120), jitter=4)
return random_jitter(expo(tries, factor=2, max_value=60), jitter=4)
def get_short_error_message(e: requests.exceptions.RequestException):
@@ -45,7 +45,7 @@ def handle_query_failure(e: Exception, cluster, backoff: dict):
return backoff
def update_clusters(cluster_discoverer, query_cluster: callable, store, query_interval=5, debug: bool=False):
def update_clusters(cluster_discoverer, query_cluster: callable, store, query_interval: float=5, debug: bool=False):
while True:
lock = store.acquire_lock()
if lock:
@@ -92,4 +92,5 @@ def update_clusters(cluster_discoverer, query_cluster: callable, store, query_in
logger.exception('Failed to update')
finally:
store.release_lock(lock)
gevent.sleep(random_jitter(1))
# sleep 1-2 seconds
gevent.sleep(min(random_jitter(1), query_interval))