From 8a067af59bddb786f7ac48de3f63e9c12470a548 Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Wed, 23 Feb 2011 13:49:49 +0200 Subject: [PATCH] cascade status: avoid negative lag, sort by name negative lag can happen if info fetching takes too long. --- python/pgq/cascade/nodeinfo.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/python/pgq/cascade/nodeinfo.py b/python/pgq/cascade/nodeinfo.py index 96de4551..48dea4b2 100644 --- a/python/pgq/cascade/nodeinfo.py +++ b/python/pgq/cascade/nodeinfo.py @@ -5,6 +5,8 @@ __all__ = ['MemberInfo', 'NodeInfo', 'QueueInfo'] +import datetime + # node types ROOT = 'root' BRANCH = 'branch' @@ -109,7 +111,12 @@ class NodeInfo: if cinfo and root.queue_info: tick_time = cinfo['tick_time'] root_time = root.queue_info['now'] - lag = root_time - tick_time + if root_time < tick_time: + # ignore negative lag - probably due to info gathering + # taking long time + lag = datetime.timedelta(0) + else: + lag = root_time - tick_time elif self.queue_info: lag = self.queue_info['ticker_lag'] @@ -268,5 +275,5 @@ def _setpfx(pfx, sfx): return pfx def _node_key(n): - return (n.levels, n.total_childs) + return (n.levels, n.total_childs, n.name) -- 2.39.5