[Checkins] SVN: zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/ Move the status onto the pool so overridden pool classes can export arbitrary
Brian Sutherland
cvs-admin at zope.org
Tue Jul 24 09:01:53 UTC 2012
Log message for revision 127385:
Move the status onto the pool so overridden pool classes can export arbitrary
data over the status server.
Changed:
U zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/lb.py
U zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/tests.py
U zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/zk.py
-=-
Modified: zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/lb.py
===================================================================
--- zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/lb.py 2012-07-24 08:37:33 UTC (rev 127384)
+++ zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/lb.py 2012-07-24 09:01:50 UTC (rev 127385)
@@ -330,6 +330,21 @@
worker.backlog -= 1
_decay_backlog(worker, self.worker_decay)
+ def status(self):
+ return dict(
+ backlog = self.backlog,
+ mean_backlog = self.mbacklog,
+ workers = [
+ (worker.__name__,
+ worker.backlog,
+ worker.mbacklog,
+ (int(worker.oldest_time)
+ if worker.oldest_time else None),
+ )
+ for worker in sorted(
+ self.workers, key=lambda w: w.__name__)
+ ])
+
def _init_backlog(worker):
worker.backlog = worker.nbacklog = worker.dbacklog = worker.mbacklog = 0
Modified: zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/tests.py
===================================================================
--- zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/tests.py 2012-07-24 08:37:33 UTC (rev 127384)
+++ zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/tests.py 2012-07-24 09:01:50 UTC (rev 127385)
@@ -297,6 +297,23 @@
"""
+def pool_status():
+ """
+ We can ask the pool for it's status. It will give us back a dictionary.
+
+ >>> worker = mock.Mock()
+ >>> worker.__name__ = 'foo'
+ >>> worker.oldest_time = 1.0
+ >>> pool = zc.resumelb.lb.Pool()
+ >>> pool.new_resume(worker, {})
+
+ >>> status = pool.status()
+ >>> status['backlog']
+ 0
+ >>> status['workers'][0][0]
+ 'foo'
+ """
+
def test_classifier(env):
return "yup, it's a test"
Modified: zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/zk.py
===================================================================
--- zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/zk.py 2012-07-24 08:37:33 UTC (rev 127384)
+++ zc.resumelb/branches/jinty-external-pool/src/zc/resumelb/zk.py 2012-07-24 09:01:50 UTC (rev 127385)
@@ -267,22 +267,9 @@
if options.status_server:
def status(socket, addr):
pool = lb.pool
+ status = pool.status()
writer = socket.makefile('w')
- writer.write(json.dumps(
- dict(
- backlog = pool.backlog,
- mean_backlog = pool.mbacklog,
- workers = [
- (worker.__name__,
- worker.backlog,
- worker.mbacklog,
- (int(worker.oldest_time)
- if worker.oldest_time else None),
- )
- for worker in sorted(
- pool.workers, key=lambda w: w.__name__)
- ]
- ))+'\n')
+ writer.write(json.dumps(status) + '\n')
writer.close()
socket.close()
More information about the checkins
mailing list