New in version 4.4.
Task groups can be used to control the transcoders that a specific job should use. It may be expanded in the future to include not only jobs and transcoders, but also other types of tasks and resources.
- A task group identifies a set of jobs and the resources available to those jobs.
- Jobs are identified by a criteria on the group.
- A job can belong to multiple groups, but only a single group for each type of resource. If a job satisfies the criteria on multiple groups, then the job belongs to the group with the highest priority.
- A transcoder can belong to any number of groups.
- A job will only use resources from the group(s) that it belongs to.
Task groups are referred to by name. Each group should specify a job criteria and a number of transcoders, and a priority if needed.
PUT /task-group/imports Content-Type: application/xml <TaskGroupDocument xmlns="http://xml.vidispine.com/schema/vidispine"> <job> <type>PLACEHOLDER_IMPORT</type> </job> <transcoder> <id>VX-1</id> </transcoder> <transcoder> <id>VX-2</id> </transcoder> <priority>MEDIUM</priority> </TaskGroupDocument>
Task groups can have multiple criteria. A job must then satisfy them all to be considered being part of that group. The selections in a criteria form a logical OR.
For example, to restrict jobs that are either imports or exports, and from the admin or bulk-import user, to transcoder VX-1:
<TaskGroupDocument xmlns="http://xml.vidispine.com/schema/vidispine"> <job> <type>PLACEHOLDER_IMPORT</type> <type>EXPORT</type> </job> <job> <user>admin</user> <user>bulk-import</user> </job> <transcoder> <id>VX-1</id> </transcoder> </TaskGroupDocument>
This is evaluated as:
(type:PLACEHOLDER_IMPORT OR type:EXPORT) AND (user:admin OR user:bulk-import)
Jobs can be matched on:
- Priority - To include jobs with a certain priority.
- Type - To include jobs of a certain type.
- User - To include jobs created by a specific user.
- Group - To include jobs created by a user in a specific group.
- Data - To include jobs with certain data.
A job will use resources from the task group with the highest priority and a matching criteria. If two task groups have the same priority then the groups are ordered by name in alphabetical order, and the first one is picked.
If a job cannot run because the transcoders available to it are offline, then a transcoder offline problem will be created. The problem will contain the name of the group and the job id(s).
This allows you to see which group/transcoder(s) a job is blocked on. For example:
<JobProblemListDocument xmlns="http://xml.vidispine.com/schema/vidispine"> <problem> <id>35113</id> <type>TranscoderOffline</type> <job>VX-115770</job> <data> <key>taskGroup</key> <value>imports</value> </data> </problem> </JobProblemListDocument>