I have setup a tableau distributed environment with a master machine and two worker machines, capable of running 2 background tasks each (6 background tasks can run simultaneously at any point in time).

I have quite a few extracts scheduled for refresh everyday.

Is it possible to map a particular extract to use a particular background ID always?

My extracts are divided into 3 projects. My extracts get refreshed as per their set priority. But, the ones with same priority get refreshed in a random order. Sometimes, this results in all tasks from one project getting executed, while the other 2 projects are waiting in the queue. I want to make sure that equal no. of tasks from each project are picked up at any point of time. Hence, the question.

This can be achieved by setting proper priority to each task. I would like to know if there is any other way to achieve this.

My only thought was to create separate Schedules, one set for each Project ("Project 1 - Hourly", "Project 2 - Hourly", "Project 1 - Daily", "Project 2 - Daily"). Then set each of those schedules to execute serially rather than in parallel--so each will use only a single Backgrounder at a time when it runs.

That strategy will work, but it can become a pain if you are growing, as you would need to:

Create a whole new set of schedules for each new Project that is created

Move content from one Schedule to another as more stuff is published up (unless your Publishers are very good at following Admin instructions -- just kidding, publishers like that don't exist! )