WIP: Get everything working except logging and job completion
This commit is contained in:
parent
eacf3f01d2
commit
f93c0a46e8
6 changed files with 120 additions and 52 deletions
|
@ -11,6 +11,8 @@ from flask import Flask
|
|||
from threading import Event, Lock
|
||||
from trollius.coroutines import From
|
||||
|
||||
from buildjob import BuildJob, BuildJobLoadException
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
WORK_CHECK_TIMEOUT = 30
|
||||
|
@ -98,11 +100,11 @@ class BuilderServer(object):
|
|||
self._current_components.remove(component)
|
||||
self._session_factory.remove(component)
|
||||
|
||||
def _job_complete(self, job_item, job_status):
|
||||
def _job_complete(self, build_job, job_status):
|
||||
if job_status == 'incomplete':
|
||||
self._queue.incomplete(job_item, restore_retry=True)
|
||||
self._queue.incomplete(build_job.job_item(), restore_retry=True)
|
||||
elif job_status == 'error':
|
||||
self._queue.incomplete(job_item, restore_retry=False)
|
||||
self._queue.incomplete(build_job.job_item(), restore_retry=False)
|
||||
else:
|
||||
self._queue.complete(job)
|
||||
|
||||
|
@ -121,8 +123,14 @@ class BuilderServer(object):
|
|||
yield From(trollius.sleep(WORK_CHECK_TIMEOUT))
|
||||
continue
|
||||
|
||||
try:
|
||||
build_job = BuildJob(job_item)
|
||||
except BuildJobLoadException as irbe:
|
||||
logger.exception(irbe)
|
||||
self._queue.incomplete(job_item, restore_retry=False)
|
||||
|
||||
logger.debug('Build job found. Checking for an avaliable worker.')
|
||||
if self._lifecycle_manager.schedule(job_item):
|
||||
if self._lifecycle_manager.schedule(build_job, self._loop):
|
||||
self._job_count = self._job_count + 1
|
||||
logger.debug('Build job scheduled. Running: %s', self._job_count)
|
||||
else:
|
||||
|
@ -134,6 +142,8 @@ class BuilderServer(object):
|
|||
|
||||
@trollius.coroutine
|
||||
def _initialize(self, loop, host):
|
||||
self._loop = loop
|
||||
|
||||
# Create the WAMP server.
|
||||
transport_factory = WampWebSocketServerFactory(self._session_factory, debug_wamp = False)
|
||||
transport_factory.setProtocolOptions(failByDrop = True)
|
||||
|
|
Reference in a new issue