From 33f12c58bac16001009a6f669459ba3a6da5f0b3 Mon Sep 17 00:00:00 2001 From: Jimmy Zelinskie Date: Tue, 16 Dec 2014 13:37:40 -0500 Subject: [PATCH] Add active worker count to buildmanager logs. --- buildman/manager/basemanager.py | 6 ++++++ buildman/manager/enterprise.py | 2 ++ buildman/server.py | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/buildman/manager/basemanager.py b/buildman/manager/basemanager.py index f66054c45..a688f09cb 100644 --- a/buildman/manager/basemanager.py +++ b/buildman/manager/basemanager.py @@ -47,3 +47,9 @@ class BaseManager(object): one of: incomplete, error, complete. If incomplete, the job should be requeued. """ raise NotImplementedError + + def num_workers(self): + """ Returns the number of active build workers currently registered. This includes those + that are currently busy and awaiting more work. + """ + raise NotImplementedError diff --git a/buildman/manager/enterprise.py b/buildman/manager/enterprise.py index 824e02d53..6583284a8 100644 --- a/buildman/manager/enterprise.py +++ b/buildman/manager/enterprise.py @@ -70,3 +70,5 @@ class EnterpriseManager(BaseManager): def build_component_disposed(self, build_component, timed_out): self.build_components.remove(build_component) + def num_workers(self): + return len(self.build_components) diff --git a/buildman/server.py b/buildman/server.py index 3863406f2..e6d254536 100644 --- a/buildman/server.py +++ b/buildman/server.py @@ -9,7 +9,7 @@ from aiowsgi import create_server as create_wsgi_server from flask import Flask from threading import Event from trollius.coroutines import From -from datetime import datetime, timedelta +from datetime import timedelta from buildman.jobutil.buildjob import BuildJob, BuildJobLoadException from data.queue import WorkQueue @@ -137,7 +137,7 @@ class BuilderServer(object): @trollius.coroutine def _work_checker(self): while self._current_status == 'running': - logger.debug('Checking for more work') + logger.debug('Checking for more work for %d active workers', self._lifecycle_manager.num_workers()) job_item = self._queue.get(processing_time=self._lifecycle_manager.setup_time()) if job_item is None: logger.debug('No additional work found. Going to sleep for %s seconds', WORK_CHECK_TIMEOUT)