We’re currently using the Version Status to drive Task status via event server in Shotgun.
With Shotgun set up in Deadline, it allows both artists and production to very rapidly know where a specific task stands.
On Nuke jobs, this works really well, because there’s a single job (+draft quicktime and filmstrip). However, I’m not sure how to get the same functionality with a lighting task in Maya, because several layers/jobs in a batch for that Shotgun task would be running at once. If I make a Shotgun version per job, the info for the Task status initially mentioned will only reflect whatever job is currently running, so the Version to Task info could be constantly bouncing around to reflect multiple versions changing states. Failed, complete, etc depending on whether a layer succeeded or failed.
The info I really want is the batch info- the cumulative total of succeeded/failed tasks for all layers as shown in Deadline monitor. I’d love to be able to use that to set the statuses rather than an individual job, but I’m not sure there’s any obvious way to do that.
Any suggestions? I’m fine with scripting this as well if necessary, but at a skim of the scripting reference, I don’t see any mention of the batches.
I don’t think we have anything in Deadline to do this, as you said we just update with the current job, even if there are multiple jobs being done. I’ll bring this up at our support meeting and see what we can come up with.
So I looked into this more and found out that since the slave is doing the update, and the fact it doesn’t know about the batch or the rest of the work being done on the farm, there is no way to do this. I can suggest trying to find a way to maybe have Pulse, or some other part of Deadline do this, but I don’t know how easy this would be to do.
My current thought is to create an event similar to the Shotgun one in the repo, but use job.JobBatchName() within it to catch the batch name (presuming that’s possible), then query which jobs share this batch name and check their current status. I could then use that to write some logic to return the value I want, then query shotgun for a version matching and update as necessary.
I know how to get the jobs related to the batchname via the deadlinecommand.exe flag ( -getjobsfilter batchname = "bla bla bla whatever " ), but I haven’t found an equivalent to the getjobsfilter in the Scripting reference yet.
I talked with one of our scripting guys and they said that in scripting there is no filter option, so it would be difficult to do this. He advised you would need to run a series of commands, first to get all jobs, then to search through the list and pick out the ones with a particular batch, then process the info for those jobs. Sadly this would not be very efficient, but it sounds like the only way.