Allow the individual build manager types to specify how long the queue should wait before retring a job that fails to schedule.

This commit is contained in:
Jake Moshenko 2015-06-10 14:17:32 -04:00
parent a99414b222
commit d31e25d5cd
4 changed files with 28 additions and 19 deletions

View file

@ -172,13 +172,13 @@ class BuilderServer(object):
logger.debug('Build job found. Checking for an avaliable worker.')
try:
scheduled = yield From(self._lifecycle_manager.schedule(build_job))
schedule_success, retry_timeout = yield From(self._lifecycle_manager.schedule(build_job))
except:
logger.exception('Exception when scheduling job')
self._current_status = BuildServerStatus.EXCEPTION
return
if scheduled:
if schedule_success:
logger.debug('Marking build %s as scheduled', build_job.repo_build.uuid)
status_handler = StatusHandler(self._build_logs, build_job.repo_build.uuid)
status_handler.set_phase('build-scheduled')
@ -188,7 +188,7 @@ class BuilderServer(object):
self._job_count)
else:
logger.debug('All workers are busy. Requeuing.')
self._queue.incomplete(job_item, restore_retry=True, retry_after=WORK_CHECK_TIMEOUT + 5)
self._queue.incomplete(job_item, restore_retry=True, retry_after=retry_timeout)
@trollius.coroutine
def _queue_metrics_updater(self):