Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Dispatching Tiers

Each job on the queue is associated with a dispatching tier. Tiers provide the highest level job dispatching control, jobs in high-valued tiers are always considered before those in low-valued tiers. For example, jobs in a "rush" tier can be handled before a "batch" tier. Within each tier jobs are sorted by the tier's Scheduling Mode (below).

New jobs are placed into the "default" tier when they are submitted, unless explicitly set at spool time (e.g. "tractor-spool --tier=batch ..."). Jobs can be moved to a different tier manually in the Dashboard. For example, during a crisis it may be useful to move several important jobs to a higher tier while leaving their job priorities unchanged to preserve sorting relative to each other. Each tier can also be pausedindividually in the Dashboard, so dispatching across entire groups of jobs can be temporarily suspended or enabled -- for example, general dispatching can be paused while a series of administrative jobs are allowed to proceed. The Dashboard also provides some controls for filtering and sorting jobs based on tiers.

Tier membership is stored on each job as a simple tier name attribute. The tier definitions themselves are located in tractor.configwith config with other policy settings.

Tier names, and the number of tiers defined, are arbitrary and can be changed as desired. Tractor will ensure that a tier named "default" always exists, even if one is not defined explicitly. Other tier names and definitions are not required. If a job refers to a tier name that does not exist then it is handled according to the "default" tier settings.

NOTE: Each tier can have a different scheduling policy, as described below. If a tier does not specify a policy, then the "JobSchedulingMode" fallback value is used.

 "JobSchedulingMode": "P+ATCL+RR",

 "DispatchTiers": {
    "admin":   {"priority": 100.0, "scheduling": "P+FIFO"},
    "rush":    {"priority":  75.0},
    "preview": {"priority":  60.0, "scheduling": "P+CHKPT"},
    "default": {"priority":  50.0},
    "batch":   {"priority":  25.0}
 },

...