Afanasy Job can have one or more blocks. Blocks have tasks. Blocks are needed to store some same parameters for all tasks it consists of. For example all block tasks have the same working directory, capacity, service and parser type. But commands are differ.
Jobs are created by Python API by some submission script:
import af job = af.Job(job_name)
User name who has created the Job. Python API constructs a job with the current user name.
Host name where job was created.
Time when the job was created.
Time when the job was started (produced the first task).
Time when the job was done (last task finished).
Any custom description. For statistics database QSL queries only.
Job consists of block(s).
Job with a greater priority will run first.
Maximum number of running tasks at the same time.
Maximum number of running tasks at the same time at the same host.
Job run only on renders which host name matches this mask.
Job can not run on renders which host name matches this mask.
Pools is a string and number pairs (map<sting,int>). Each pair represents pool name string and pool priority number.
Job will wait other user jobs which name matches this mask.
Job will wait other jobs from any user which name matches this mask.
Time to wait to start a job.
Preview Pending Approval parameter plays role only when job block(s) has a non-sequential tasks solving. When PPA is turned on, job renders only non-sequential tasks (for example just each 10 frame). Then job state falls into PPA and it stops to solve any tasks. Artist can check each 10 job frames. And, depending on the results, continue job or not. To continue job, you can turn PPA parameter off.
Job will run on tasks which name matches render name. Useful for “Maintenance” jobs, when you want some command run only once on each render. For example you can install software this way.
Job tasks will run on render even it has “Nimby” state. Useful for “Maintenance” jobs.
Job tasks will run on render even it has “Paused” state. Useful for “Maintenance” jobs.
Job will run only on hosts which name contains this mask. Python setNativeOS() function will automatically set needed OS the same that it run.
Job will run only on hosts with custom properties contains this mask. It’s custom host parameter can be defined in farm description.
Command to execute on job registration. Note, that this command is executed by server, and not from tasks working directory. Use absolute paths here or even transfer paths if you server has another file system than renders. If somebody executes ‘sleep 1000’, other commands execution (and jobs registration) will be delayed on 1000 seconds (only delayed, not lost). Try not use Pre Command at all. You always can create one more task(block) and make other tasks(blocks) depend on it.
Command executed on job deletion.
Usually used to delete temporary render scene.
This commands are executed on render farm hosts by special system job.
Working directory of such system task will be the first block working folder.
Maximum job age in seconds. When job age becomes greater then life time if will be automatically deleted in any case. It is useful for some technical jobs to prevent their amount rise. User can set default Life Time value for all its jobs.
Job annotation. Does not influence anything. This string will be shown in a GUI item.
Job annotation. Does not influence anything. This string will be shown in a GUI item. It should be set from a task parser: self.report
||Job is ready to produce a task.|
||Job has running tasks.|
||All job tasks are done (may be some skipped).|
||Job has some error tasks.|
||Some job tasks are skipped.|
||Job waits some other jobs to be done.|
||Job waits some time to start.|
|Preview Pending Approval||
||Job has rendered all non-sequential tasks and waits approval.|
||Flag to server not to solve a job.|