Add a default maximum of 10 jobs waiting from a job template if launched

by a schedule
This commit is contained in:
Matthew Jones 2014-12-08 10:51:16 -05:00
parent 91527228db
commit e8a837ea11
2 changed files with 7 additions and 0 deletions

View File

@ -286,6 +286,10 @@ class JobTemplate(UnifiedJobTemplate, JobOptions):
@property
def cache_timeout_blocked(self):
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" %
(self.name, getattr(settings, 'SCHEDULE_MAX_JOBS', 10)))
return True
return False
def _can_update(self):

View File

@ -96,6 +96,9 @@ JOBOUTPUT_ROOT = os.path.join(BASE_DIR, 'job_output')
# The heartbeat file for the tower scheduler
SCHEDULE_METADATA_LOCATION = os.path.join(BASE_DIR, '.tower_cycle')
# Maximum number of the same job that can be waiting to run when launching from scheduler
SCHEDULE_MAX_JOBS = 10
SITE_ID = 1
# Make this unique, and don't share it with anybody.