mirror of
https://github.com/ansible/awx.git
synced 2024-11-01 08:21:15 +03:00
jt, wfjt: Ensure SCHEDULE_MAX_JOBS is accurately respect
Currently SCHEDULE_MAX_JOBS+1 can be scheduled rather than SCHEDULE_MAX_JOBS. This is due to the fact that we using strictly greater rather than greater or equal. Imagine we set SCHEDULE_MAX_JOBS=1, current logic: * First time (count = 0), count < 1 -> proceed * Second time (count = 1), count =< 1 -> proceed * Third time (count = 2), count > 1 -> prevented Imagine we set SCHEDULE_MAX_JOBS=1, new logic: * First time (count = 0), count < 1 -> proceed * Second time (count = 1), count =< 1 -> prevented Signed-off-by: Yanis Guenane <yguenane@redhat.com>
This commit is contained in:
parent
cab6b8b333
commit
5e20dcb6ca
@ -451,7 +451,7 @@ class JobTemplate(UnifiedJobTemplate, JobOptions, SurveyJobTemplateMixin, Resour
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def cache_timeout_blocked(self):
|
def cache_timeout_blocked(self):
|
||||||
if Job.objects.filter(job_template=self, status__in=['pending', 'waiting', 'running']).count() > getattr(settings, 'SCHEDULE_MAX_JOBS', 10):
|
if Job.objects.filter(job_template=self, status__in=['pending', 'waiting', 'running']).count() >= getattr(settings, 'SCHEDULE_MAX_JOBS', 10):
|
||||||
logger.error("Job template %s could not be started because there are more than %s other jobs from that template waiting to run" %
|
logger.error("Job template %s could not be started because there are more than %s other jobs from that template waiting to run" %
|
||||||
(self.name, getattr(settings, 'SCHEDULE_MAX_JOBS', 10)))
|
(self.name, getattr(settings, 'SCHEDULE_MAX_JOBS', 10)))
|
||||||
return True
|
return True
|
||||||
|
@ -408,7 +408,7 @@ class WorkflowJobTemplate(UnifiedJobTemplate, WorkflowJobOptions, SurveyJobTempl
|
|||||||
@property
|
@property
|
||||||
def cache_timeout_blocked(self):
|
def cache_timeout_blocked(self):
|
||||||
if WorkflowJob.objects.filter(workflow_job_template=self,
|
if WorkflowJob.objects.filter(workflow_job_template=self,
|
||||||
status__in=['pending', 'waiting', 'running']).count() > getattr(settings, 'SCHEDULE_MAX_JOBS', 10):
|
status__in=['pending', 'waiting', 'running']).count() >= getattr(settings, 'SCHEDULE_MAX_JOBS', 10):
|
||||||
logger.error("Workflow Job template %s could not be started because there are more than %s other jobs from that template waiting to run" %
|
logger.error("Workflow Job template %s could not be started because there are more than %s other jobs from that template waiting to run" %
|
||||||
(self.name, getattr(settings, 'SCHEDULE_MAX_JOBS', 10)))
|
(self.name, getattr(settings, 'SCHEDULE_MAX_JOBS', 10)))
|
||||||
return True
|
return True
|
||||||
|
Loading…
Reference in New Issue
Block a user