本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
任务包的作业模板元素
作业模板定义了运行时环境和作为 Deadline Cloud 作业的一部分运行的进程。你可以在模板中创建参数,这样它就可以用来创建只在输入值上不同的作业,就像编程语言中的函数一样。
当您向 Deadline Cloud 提交任务时,它将在应用于该队列的任何队列环境中运行。队列环境是使用开放作业描述 (OpenJD) 外部环境规范构建的。有关详细信息,请参阅 OpenJD GitHub 存储库中的
有关使用 OpenJD 作业模板创建任务的简介,请参阅在 OpenJD GitHub 存储库samples目录中有作业模板示例。
您可以使用 YAML 格式 (template.yaml) 或 JSON 格式 (template.json) 定义作业模板。本节中的示例以 YAML 格式显示。
例如,该blender_render示例的作业模板将输入参数定义BlenderSceneFile为文件路径:
- name: BlenderSceneFile type: PATH objectType: FILE dataFlow: IN userInterface: control: CHOOSE_INPUT_FILE label: Blender Scene File groupLabel: Render Parameters fileFilters: - label: Blender Scene Files patterns: ["*.blend"] - label: All Files patterns: ["*"] description: > Choose the Blender scene file to render. Use the 'Job Attachments' tab to add textures and other files that the job needs.
该userInterface属性定义了使用命令的命令行和 Autodesk Maya 等应用程序的作业提交插件中自动生成的用户界面的行为。deadline bundle gui-submit
该gui-submit命令会打开一个提交对话框,其中包含作业名称、优先级和目标队列的共享作业Job-specific 设置选项卡,以及根据作业模板中的参数定义生成的设置选项卡。
在此示例中,用于输入BlenderSceneFile参数值的 UI 控件是一个仅显示文件的文件选择对话框。.blend
有关使用该userInteface元素的更多示例,请参阅截止日期云样本存储库中的
objectType和dataFlow属性控制您从作业包提交作业时作业附件的行为。在这种情况下,objectType:
FILE并dataFlow:IN表示的值BlenderSceneFile是工作附件的输入文件。
相比之下,OutputDir参数的定义有 objectType:
DIRECTORYdataFlow: OUT:
- name: OutputDir type: PATH objectType: DIRECTORY dataFlow: OUT userInterface: control: CHOOSE_DIRECTORY label: Output Directory groupLabel: Render Parameters default: "./output" description: Choose the render output directory.
作业附件使用该OutputDir参数的值作为作业写入输出文件的目录。
当您提交捆绑包时,提交对话框的 “作业附件” 选项卡会列出它从这些属性中检测到的输入文件和目录,以及作业写入的输出目录。以斜体显示的路径是自动检测到的;您可以添加提交者未找到的其他路径。
有关objectType和dataFlow属性的更多信息,请参阅 Open Job 描述规范JobPathParameterDefinition
blender_render作业模板示例的其余部分将作业的工作流程定义为单个步骤,动画中的每一帧都作为单独的任务进行渲染:
steps: - name: RenderBlender parameterSpace: taskParameterDefinitions: - name: Frame type: INT range: "{{Param.Frames}}" script: actions: onRun: command: bash # Note: {{Task.File.Run}} is a variable that expands to the filename on the worker host's # disk where the contents of the 'Run' embedded file, below, is written. args: ['{{Task.File.Run}}'] embeddedFiles: - name: Run type: TEXT data: | # Configure the task to fail if any individual command fails. set -xeuo pipefail mkdir -p '{{Param.OutputDir}}' blender --background '{{Param.BlenderSceneFile}}' \ --render-output '{{Param.OutputDir}}/{{Param.OutputPattern}}' \ --render-format {{Param.Format}} \ --use-extension 1 \ --render-frame {{Task.Param.Frame}}
例如,如果Frames参数的值为1-10,则它定义了 10 个任务。每个任务都有不同的Frame参数值。要运行任务,请执行以下操作:
-
例如,嵌入式文件
data属性中的所有变量引用均已扩展--render-frame 1。 -
该
data属性的内容将写入磁盘上会话工作目录中的文件中。 -
任务的
onRun命令解析为,bash然后运行。location of embedded file
有关嵌入式文件、会话和路径映射位置的更多信息,请参阅 Op en Job Descript ion 规范中的作业运行
d eadline-cloud-samples/job_bundles