summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Kreen2011-02-23 11:49:49 +0000
committerMarko Kreen2011-02-23 11:49:49 +0000
commit8a067af59bddb786f7ac48de3f63e9c12470a548 (patch)
treed070fe3fa648d4d68ac418e26692d11d3438b66b
parente651af3827a54c55919f4152c72ca0133f96defd (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.py11
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)