Skip to content

Add groups to greedy scheduling

Hy Murveit requested to merge murveit/kstars:scheduler44 into master

Introduces the (Greedy-only) scheduler concept of SchedulerJob groups. Scheduler jobs can be assigned a group name (a string). Jobs with the same (non-empty) group name essentially all have the same priority (highest priority of the jobs) if they are "repeat jobs" (repeat forever or repeat N times). If they are not repeat jobs, group names would have no effect.

At the start, a higher job in a group might be scheduled and completes one repetition. When that job is about to start its second repetition, instead of running, another member of the group (that hasn't completed its first repetition) will get scheduled in its place. In general, if all members of the group are Repeat N or Repeat Forever, then the group will execute in lock-step, each member executing "repetition j" until they are all done, then the higher one will start "repetition j+1". In this way, for example, mosaic jobs can be scheduled to repeat and all jobs in the mosaic will repeat together.

Edited by Hy Murveit

Merge request reports