diff options
author | Marko Kreen | 2011-02-23 11:49:49 +0000 |
---|---|---|
committer | Marko Kreen | 2011-02-23 11:49:49 +0000 |
commit | 8a067af59bddb786f7ac48de3f63e9c12470a548 (patch) | |
tree | d070fe3fa648d4d68ac418e26692d11d3438b66b | |
parent | e651af3827a54c55919f4152c72ca0133f96defd (diff) |
cascade status: avoid negative lag, sort by name
negative lag can happen if info fetching takes too long.
-rw-r--r-- | python/pgq/cascade/nodeinfo.py | 11 |
1 files 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) |