JS-1301Job chains can have default process classes.
- If a Job is used in different Job chains with different process classes, JobScheduler might raise an error if a task for this job is already running but needs to be started for another process class.
- A job should be able to run in different process classes
- at the same time (if enough tasks are available)
- sequentially (if it needs to be started for more process classes than available tasks)
- Jobs that are assigned a process class via a job chain do not cause idle jobs to end themselves in order to release their slot in the process class.
- This limitation is addressed by
- The tasks attribute of the job specifies the allowed number of tasks of this job per JobScheduler Master, not per process_class.
- If a job has tasks="3" and is configured for 2 process classes, then a total number of 3 instances of this job is allowed, not 6.
- If tasks are running and a task start is requested for a process class for which no task is running or no running task is idle and...
- if there are still tasks available for the job, then a new task is started for that process class
- if there are no tasks available for the job and...
- a task of another process class is idle, then the idle task is ended in favor of the waiting process class
- all other tasks of this job are busy, then then the order has to wait
- do we need some algorithm here (round-robin) to prevent starving?