Tasks are exists only in non-numeric blocks, where each task can have its own name and command. In numeric blocks tasks are generated on demand, as numeric block enough has information to generate any task. Most blocks are numeric, as tasks are differ only by few numbers in a command.
There are some cases when tasks commands differ by some strings, and block can’t be described by frame numbers. For example ffmpeg converts various sequences and movies in a sigle job block (Rules constucts such jobs for previews).
import af job = af.Job(job_name) block = af.Block(name, service) job.blocks.append(block) task = af.Task(task_name) block.tasks.append(task)
If block is numeric all this attributes are generated on the fly by block.
Task name. Generated, if block is numeric.
Command to execute. Generated, if block is numeric.
Files for preview. Generated, if block is numeric.
Tasks process extra environment. It will be merged with a block extra environment.
Time when task was started (last start).
Time when task was done (last finish).
Number of times task has started (it can be manually or automatically restarted).
Running task progress percentage.
Running frame for multiframe tasks which can be produced by numeric blocks when frames per render parameter > 1.
Running percentage of current running frame for multiframe tasks which can be produced by numeric blocks when frames per render parameter > 1.
Number of times the task produced an error.
Host name where the task was started last time.
Last task activity. This is a sting to informate user only, does not influence anything. Activity can be parsed from task process output by Python parser class.
||Task can be executed.|
||Task is running.|
||Task is done.|
||Task finished with error or failed to start.|
||Warning from parser.|
||Error from parser.|
|Parser Bad Result||
||Bad result from parser.|
|Restated Error Ready||