Dynamic scheduling task dependencies Dynamic scheduling uses task ordering rules to prioritize the list of tasks to be assigned. Where applicable, task dependencies override the task ordering rules. A task with one or more downstream tasks cannot be unassigned. If a downstream task is assigned and the upstream task gets reassigned, dynamic scheduling attempts assign the upstream task before the start of the downstream task. If a task has an upstream task that is unassigned, the downstream task does not get assigned. If a task has an upstream task that is assigned, the downstream task does not start until the upstream task is completed. If a task has an upstream task that is assigned a lower priority, the downstream task is not assigned until the upstream task is assigned.