Submit Job with API


#1

Hello,

I want to clone and resubmit a job submitted to my render farm. There are many settings I want to change like camera name, output name, frame range, etc.

How can I have the JSON objects that are required to “Submit Job” with the API request? ( JobInfo - PluginInfo - AuxFiles )

Is there a more detailed documents or example of “Submit Job” api?


#2

Which API are you referring to? I’m currently submitting all our jobs via deadlinecommand.exe on the client machines.

This process wraps the actual Deadline API to provide some scriptable access for end-users. It’s actually a long-standing frustration of mine how the actual repository interface/API is shrouded in so much secrecy and duct tape, but this is neither the time nor place for that discussion I guess.

Anyway, if you’re just submitting a simple job, you can easily do it with the deadlinecommand.exe – check out the Manual Job Submission manual for some more info, or pose a more specific question here and I’m sure we can walk you through it.

If you’re using the Web API thing, I can’t help you much, but from what I understand that’s essentially a web wrapper for deadlinecommand.exe, so I assume you’ll have access to about the same commands.

If you elaborate a bit on your request, we’ll get you started in no time.


#3

Can answer the using the standalone python api to submit jobs. this api:
DL Standalone Py Ref


#4

I mean, all the options amount to just about the same thing.

In your preferred solution @kwatts:
The Deadline Python module interfaces with deadlinewebservice, which either wraps or clones deadlinecommand, which in turn communicates with the actual API and repository.

Or, you can just make a system call to deadlinecommand and get it over with, taking out two dependencies and the need to run the REST host as a separate service, etc.

Each to their own I guess, I just wanted to throw some perspective on this.


#5

@danielskovli
We use the Python standalone api to submit jobs, with the fall back , if there is no connection to use the commandline.

The main reason, while latest versions of deadline is far better, the python api/ webservice is faster for submissions. We have a heavy amount of automation in the pipeline, so we need the least amount of latency between job submission and jobid returned.

We then load balance against 3 small nodes running the webservice.

We do use the command line for some things, For remote commands and script execution, we have it wrapped in a python class.

I think ultimately it comes down to path of least resistance, if we wanted to solely use the commandline we would have to wrap it in python to allow for the same functionality we get from the external python api…

It would be amazing if Thinkbox wrote a shim or one thing to interface with…

my 2 cents.


#6

I hear you. We’ve gone down the deadlinecommand path because that has proven to be less hassle and offer better performance for us, but I’m not really up to speed on the hardware/OS reasons behind this. I think perhaps we never got the web service to run in a stable way.

Anyway, what I think everyone would benefit from, like you said, is a more direct way to interface with the repository and database. Then we could have one service to focus our efforts and resources on, and all calls in and out would be significantly faster.