任務範本的任務區塊 - 截止日期雲端

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

任務範本的任務區塊

任務區塊可讓您將多個任務分組為稱為區塊的單一工作單位。例如,在轉譯任務中,這表示截止日期雲端可以將多個影格一起分派,而不是每個命令叫用一個影格。這可降低每個任務啟動應用程式的負荷,並縮短總任務執行時間。如需詳細資訊,請參閱 OpenJD Wiki 中的一次執行多個影格

OpenJD 支援擴充功能,可將選用功能新增至任務範本。新增 TASK_CHUNKING延伸來啟用任務區塊。若要使用區塊,請將延伸模組新增至您的任務範本,並使用CHUNK[INT]任務參數類型。使用相同的deadline bundle submit命令提交區塊任務。例如,下列任務範本會以 10 的區塊轉譯影格:

specificationVersion: 'jobtemplate-2023-09' extensions: - TASK_CHUNKING name: Blender Render with Contiguous Chunking parameterDefinitions: - name: BlenderSceneFile type: PATH objectType: FILE dataFlow: IN - name: Frames type: STRING default: "1-100" - name: OutputDir type: PATH objectType: DIRECTORY dataFlow: OUT default: "./output" steps: - name: RenderBlender parameterSpace: taskParameterDefinitions: - name: Frame type: CHUNK[INT] range: "{{Param.Frames}}" chunks: defaultTaskCount: 10 rangeConstraint: CONTIGUOUS script: actions: onRun: command: bash args: ["{{Task.File.Run}}"] embeddedFiles: - name: Run type: TEXT data: | set -xeuo pipefail mkdir -p '{{Param.OutputDir}}' # Parse the chunk range (e.g., "1-10") into start and end frames START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)" END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)" blender --background '{{Param.BlenderSceneFile}}' \ --render-output '{{Param.OutputDir}}/output_####' \ --render-format PNG \ --use-extension 1 \ -s "$START_FRAME" \ -e "$END_FRAME" \ --render-anim

在此範例中,Deadline Cloud 會將 100 個影格分成 1-1011-20等區塊。{{Task.Param.Frame}} 變數會展開至範圍表達式,例如 1-10。因為 rangeConstraint 設為 CONTIGUOUS,所以範圍一律為 start-end 格式。指令碼剖析此範圍,並使用 -s-e選項將開始和結束影格傳遞給 Blender--render-anim

chunks 屬性支援下列欄位:

  • defaultTaskCount – (必要) 要合併為單一區塊的任務數量。最大值為 150。

  • rangeConstraint – (必要) 如果 CONTIGUOUS,區塊一律為連續範圍,例如 1-10。如果為 NONCONTIGUOUS,區塊可以是任意集,如 1,3,7-10

  • targetRuntimeSeconds – (選用) 每個區塊的目標執行時間,以秒為單位。截止日期 雲端可以動態調整區塊大小,在某些區塊完成後接近此目標。

如需更多任務區塊範例,包括具有連續和非連續區塊的基本和 Blender 範例,請參閱 GitHub 上截止日期雲端範例儲存庫中的任務區塊範例。

客戶受管機群需求

任務區塊需要相容的工作者代理程式版本。如果您使用客戶管理的機群,請確保在提交具有區塊的工作之前更新您的工作者代理程式。服務受管機群一律使用相容的工作者代理程式版本。

下載區塊任務的輸出

當您下載區塊任務中單一任務的輸出時,Deadline Cloud 會下載整個區塊的輸出。例如,如果同時處理影格 1-10,則下載影格 3 的輸出會包含所有影格 1-10。此功能需要 0deadline-cloud.53.3 版或更新版本。