Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Elementos de plantilla de trabajo para paquetes de trabajos
La plantilla de trabajo define el entorno de ejecución y los procesos que se ejecutan como parte de un trabajo de Deadline Cloud. Puede crear parámetros en una plantilla para utilizarla para crear trabajos que solo difieran en los valores de entrada, de forma similar a una función en un lenguaje de programación.
Cuando envías un trabajo a Deadline Cloud, se ejecuta en cualquier entorno de cola aplicado a la cola. Los entornos de cola se crean con la especificación de entornos externos de Open Job Description (OpenJD). Para obtener más información, consulte la plantilla de entorno
Para ver una introducción a la creación de un trabajo con una plantilla de trabajo de OpenJD, consulte Introducción a la creación de un trabajo samples
Puede definir la plantilla de trabajo en formato YAML (template.yaml) o JSON (). template.json Los ejemplos de esta sección se muestran en formato YAML.
Por ejemplo, la plantilla de trabajo del blender_render ejemplo define un parámetro de entrada BlenderSceneFile como una ruta de archivo:
- 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.
La userInterface propiedad define el comportamiento de las interfaces de usuario generadas automáticamente tanto para la línea de comandos que utiliza el deadline bundle gui-submit comando como para los complementos de envío de trabajos de aplicaciones como Autodesk Maya.
El gui-submit comando abre un cuadro de diálogo de envío con una pestaña de configuración de trabajos compartidos para el nombre, la prioridad y la cola de destino del trabajo, y una pestaña de Job-specific configuración generada a partir de las definiciones de parámetros de la plantilla de trabajo.
En este ejemplo, el widget de interfaz de usuario para introducir un valor para el BlenderSceneFile parámetro es un cuadro de diálogo de selección de archivos que muestra solo los archivos. .blend
Para ver más ejemplos del uso del userInteface elemento, consulte el ejemplo gui_control_showcase
dataFlowLas propiedades objectType y controlan el comportamiento de los archivos adjuntos al enviar un trabajo desde un paquete de trabajos. En este caso, objectType:
FILE y dataFlow:IN significan que el valor de BlenderSceneFile es un archivo de entrada para los archivos adjuntos de tareas.
Por el contrario, la definición del OutputDir parámetro tiene objectType:
DIRECTORY ydataFlow: 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.
Los archivos adjuntos al trabajo utilizan el valor del OutputDir parámetro como el directorio en el que el trabajo escribe los archivos de salida.
Al enviar el paquete, la pestaña Adjuntos del trabajo del cuadro de diálogo de envío muestra los archivos de entrada y los directorios que detectó a partir de estas propiedades, junto con los directorios de salida en los que escribe el trabajo. Las rutas que aparecen en cursiva se detectaron automáticamente; puede añadir otras que el remitente no haya encontrado.
Para obtener más información sobre las dataFlow propiedades objectType y, consulte JobPathParameterDefinition
En el resto del ejemplo de plantilla de blender_render trabajo, se define el flujo de trabajo del trabajo como un solo paso, en el que cada fotograma de la animación se representa como una tarea independiente:
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}}
Por ejemplo, si el valor del Frames parámetro es1-10, define 10 tareas. Cada tarea tiene un valor diferente para el Frame parámetro. Para ejecutar una tarea:
-
Todas las referencias a variables de la
datapropiedad del archivo incrustado se expanden, por ejemplo--render-frame 1. -
El contenido de la
datapropiedad se escribe en un archivo del directorio de trabajo de la sesión en el disco. -
El
onRuncomando de la tarea se resuelve enbashy, a continuación, se ejecuta.location of embedded file
Para obtener más información sobre los archivos incrustados, las sesiones y las ubicaciones mapeadas, consulte Cómo se ejecutan los trabajos
Hay más ejemplos de plantillas de trabajo en el samples/job_bundles repositorio