Merge pull request #3011 from coreos-inc/mysql-queue-tests
Switch build queue limiter query to use total number of alive jobs
This commit is contained in:
commit
f851693095
2 changed files with 10 additions and 8 deletions
|
@ -74,18 +74,20 @@ class WorkQueue(object):
|
|||
._available_jobs(now, name_match_query)
|
||||
.where(~(QueueItem.queue_name << running_query)))
|
||||
|
||||
def num_available_jobs(self, canonical_name_list):
|
||||
def num_alive_jobs(self, canonical_name_list):
|
||||
"""
|
||||
Returns the number of available queue items with a given prefix.
|
||||
Returns the number of alive queue items with a given prefix.
|
||||
"""
|
||||
def strip_slash(name):
|
||||
return name.lstrip('/')
|
||||
canonical_name_list = map(strip_slash, canonical_name_list)
|
||||
canonical_name_query = '/'.join([self._queue_name] + canonical_name_list) + '%'
|
||||
|
||||
available = self._available_jobs(datetime.utcnow(),
|
||||
'/'.join([self._queue_name] + canonical_name_list) + '%')
|
||||
|
||||
return available.count()
|
||||
return (QueueItem
|
||||
.select()
|
||||
.where(QueueItem.queue_name ** canonical_name_query)
|
||||
.where(QueueItem.retries_remaining > 0)
|
||||
.count())
|
||||
|
||||
def num_available_jobs_between(self, available_min_time, available_max_time, canonical_name_list):
|
||||
"""
|
||||
|
|
|
@ -31,8 +31,8 @@ def start_build(repository, prepared_build, pull_robot_name=None):
|
|||
|
||||
if repository.namespace_user.maximum_queued_builds_count is not None:
|
||||
queue_item_canonical_name = [repository.namespace_user.username]
|
||||
available_builds = dockerfile_build_queue.num_available_jobs(queue_item_canonical_name)
|
||||
if available_builds >= repository.namespace_user.maximum_queued_builds_count:
|
||||
alive_builds = dockerfile_build_queue.num_alive_jobs(queue_item_canonical_name)
|
||||
if alive_builds >= repository.namespace_user.maximum_queued_builds_count:
|
||||
logger.debug('Prevented queueing of build under namespace %s due to reaching max: %s',
|
||||
repository.namespace_user.username,
|
||||
repository.namespace_user.maximum_queued_builds_count)
|
||||
|
|
Reference in a new issue