When you perform submissions yourself, it is up to you to build both JOB files, and the command line that performs each submission.
So if you want to submit 5 or 50 jobs all using the same scene, it is up to you to save the scene to a certain path, and then reference the same file N times via SceneFile= in the JOB file.
If you want to submit the same scene multiple times as auxiliary file, you can optionally add as first argument in the command line, and do not include SceneFile= entry in the PluginInfo.JOB file. However, this would defeat the purpose of our conversation, as a huge file will be copied N times to each Job’s folder in the Repository, and then each one will be copied to the temp folder of each render node.
When the Worker picks up a Task from a Job where the scene was submitted as an auxiliary file, it will AUTOMATICALLY pull the copy from the Job’s folder into the local temp. folder of the render node. You cannot prevent this, it is in the low-level code of the Deadline Worker application. Once the file is copied into the temp. folder, it will be reused for all Tasks of that Job that run on that render node. However, the the SAME scene file is used by ANOTHER Job, the previous copy will NOT be reused by the next Job, as it is an auxiliary file from a different Job, even if it is identical. So you cannot use auxiliary files for sharing one file across 50+ jobs, you MUST use SceneFile=
In the MayaBatch plugin script (MayaBatch.py) for example, you can see the line
sceneFilename = self.GetPluginInfoEntryWithDefault( "SceneFile", self.GetDataFilename() ).strip().replace( "\\", "/" )
This does the following:
- Try to read the SceneFile key from the Plugin Info.
- If it exists, it will be read, remapped to use forward slashes if necessary, and assigned to the variable which goes through more path mapping later on, and ends up being used as the scene file
- If it does not exist, then the default value self.GetDataFilename() is used, which happens to be the first auxiliary file of the submission.
- If neither is supplied, the scene file will be “” and the loading will fail.
This means that having both SceneFile= in the Plugin Info and the scene in the first auxiliary file would always use the SceneFile and the auxiliary file would be wasted. So your logic in your submitter should either include the SceneFile= in every PluginInfo.job file when submitting, or not include it but pass as auxiliary file. As your original question was about how to reuse the same file, the SceneFile= option is the only Deadline feature that would kinda do that. By default, the SceneFile would be loaded over the network, but you could add custom logic to a custom integration plugin to take the path and copy to a local folder on the render node. It could also include logic to check if the correct version (date and size) of the file already exists on the local drive, and NOT perform the copying again if it is already there when a new Job is picked from the same batch submission that reuses the asset.
Btw, the Maya Deadline integration has a “local cache” feature that tries to reuse asset files between Jobs that works a bit like that, but we have not ported it to any other applications yet. As you suggested, you should be able to add your own logic to the integration script and submitters to get what you need.
Please note that the BatchName property is purely a Monitor Job display level construct to visualize related jobs in a subtree, but it does nothing else. So it is UI level cosmetics, not really doing anything to relate the jobs together.
I am not sure if this made things clearer or not Please ask if you have any further questions about customizing your submission and rendering workflow!