How Scheduled Server Jobs are Prioritised
Jobs and Tasks
In Tableau Server, users can schedule extract refreshes, subscriptions or flows to run periodically. These scheduled items are referred to as tasks. The Backgrounder process initiates unique instances of these tasks to run them at the scheduled time. The unique instances of the tasks that are initiated as a result are referred to as jobs. Jobs are also created for runs that are initiated manually, by clicking the Run now option.
For example, an extract refresh task is created to run daily at 9 AM. This is an extract refresh task, and every day at 9 AM, a job will be created for the Backgrounder to run.
You can assign a priority number to Tasks and Schedules using values from 1 to 100. Lower the number, higher the priority, 1 is the highest priority, and 100 is the lowest.
Priority Rules for Jobs
When processing scheduled extract refreshes, subscriptions and flow runs, Tableau Server prioritises background jobs in this order:
Any job already in process is completed first.
Any task or schedule that you initiate manually using Run now starts when the next backgrounder process becomes available. Exception to this are the flow tasks and schedules. Flow runs use the assigned task priority to determine the order in when they should run. If there is no task priority assigned it defaults to 0 which is the highest priority.
Note: Learn how to restrict Run now settings – Server Settings (General and Customisation).
Jobs with the highest priority (the lowest number) start next, independent of how long they have been in the queue.
For extract refreshes and flows, this is the task priority. The task priority is inherited from the schedule priority when the task is first created. The task priority can be subsequently changed but the task priority returns to the default value when the data source is republished.
For subscriptions, this is the schedule priority. If you have enabled custom schedules for subscriptions, then the priority of those jobs is set to 50.
For example, a job with a priority of 20 will run before a job with a priority of 50, even if the second job has been waiting longer. To change task priority, see Create or Modify a Schedule.
Jobs with the same priority are executed in the order they were added to the queue. The first job added to the queue starts first; then the second job starts.
When multiple jobs with the same priority are scheduled to run at the same time, they start in the order they were created or enabled. Jobs scheduled for the same time are executed by task type with the fastest category of jobs starting first: flow runs, followed by data driven alerts, followed by system jobs, followed by subscriptions, followed by extract creation, followed by incremental extracts and then full extracts.
Flows that are scheduled to run as part of a linked task are all assigned the same priority and run in the order they are defined in the linked task. For more information about linked tasks, see Schedule linked tasks(Link opens in a new window).
As the last tie breaking measure, the Backgrounder uses the historical run time. Jobs that have run faster in the previous runs, will be prioritised over jobs that have taken longer historically.
Note: Setting backgrounder resource limits on a specific site will have an additional queue as these jobs are picked up after other higher priority jobs. For details, see Tableau Server Backgrounder Resource Limits.
The following limitations also impact when the jobs are run:
The number of concurrent jobs is limited to the number of backgrounder processes you have configured for Tableau Server.
Separate refreshes for the same extract or data source cannot run at the same time.
Jobs associated with a schedule that is set to run serially run one at a time.