We do maintenance jobs every now and then, and would like to implement that in deadline now.
How would you go about creating a job where there is a task generated for each machine? Basically, we want to make sure that every slave renders a task, and one only, and no slave is skipped.
Not possible at present. Well, not in a clean, reliable/robust way anyway, that’s worth talking about.
It’s been on the ever increasing todo dev’s list for quite some time now.
+1 from my perspective for this feature as well!
Was also thinking of something like having a job with 1000+ tasks, and some post-render script that blacklists the rendering slave once its done. That might also work?
Yeah, that would work. You could use the output of “deadlinecommand -slaves” to get all of the slaves automatically, and then submit a job for each one.
That might work too. There are API functions to modify the machine limit of a job, and that includes the blacklist. There could potentially be a race condition here though.
The way we’re thinking of doing it for 6.1 is to have a special flag for the job. If the job has that flag set, the slave would look at all completed tasks for that job. If it isn’t one of the slaves that has completed a task, then the slave would dequeue from it. Otherwise, it would move on. The only thing we’re not sure on is how to handle the task count. It could just be set automatically to the number of slaves in the farm…
I think this is a good idea. It will be great if your targeting all your slaves in one job. But if you used Groups or other limits to target specific slaves, then the submitter should automatically reduce the number of tasks accordingly before submission. Otherwise the job progress will look confusing and you end up with completed jobs that still have queued tasks.
I have some Deadline slaves in my slavesList which aren’t technically used as slaves. I wouldn’t want to execute “maintenance” jobs on these machines. So targeting by existing groups/pools/something else, would be preferable for me.
Also in the taskList, ideally I would like to see machine/slave names and not frame numbers as they are meaningless in the context of “maintenance” jobs.