support calling ServiceRegistry.available_services() with no arguments to get all available services (services with a recent heartbeat)

This commit is contained in:
Noah Levitt 2016-04-19 19:16:46 +00:00
parent 7a8963b7c4
commit 92b8007f98
2 changed files with 8 additions and 4 deletions

View File

@ -174,11 +174,15 @@ class ServiceRegistry(object):
except r.ReqlNonExistenceError:
return None
def available_services(self, role):
def available_services(self, role=None):
try:
result = self.r.table('services').filter({"role":role}).filter(
query = self.r.table('services')
if role:
query = query.filter({"role":role})
query = query.filter(
lambda svc: r.now().sub(svc["last_heartbeat"]) < 3 * svc["heartbeat_interval"] #.default(20.0)
).order_by("load").run()
).order_by("load")
result = query.run()
return result
except r.ReqlNonExistenceError:
return []

View File

@ -2,7 +2,7 @@ import setuptools
setuptools.setup(
name='rethinkstuff',
version='0.1.4',
version='0.1.5',
packages=['rethinkstuff'],
classifiers=[
'Programming Language :: Python :: 2.7',