The current PrioritySorter plugin does not consider the executing jobs. So it is possible for a job with a lower priority to be started even when there is a higher priority job already executing.
A great enhancement to PrioritySorter would be to:
- prevent a job from starting if there is already a job with a higher priority executing.
- be able to configure this feature on or off. Some sites will want the current behavior.
One usage scenario is:
- I have a set of jobs for the integration branch and another set of jobs for the trunk branch (say to do a production release)
- the int jobs are kicked off by changes to the SCM
- but when I need to run the trunk jobs, they need to run immediately, i.e. the int jobs can wait.
- To do that, I set the priority on the trunk jobs to a higher value.
- I kick off the trunk jobs
- if an int job comes in at that point, it is sorted last in the queue but also isn't allowed to run until the higher priority trunk jobs are done.