View a markdown version of this page

Menambahkan pemotongan tugas ke template pekerjaan - Awan Batas Waktu

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menambahkan pemotongan tugas ke template pekerjaan

Prosedur berikut mengubah template pekerjaan yang merender satu bingkai per tugas menjadi satu yang merender potongan bingkai. Untuk latar belakang potongan dan cara memilih ukuran potongan, lihat. Pemotongan tugas untuk templat pekerjaan

Sebelum memulai, Anda perlu melakukan hal berikut:

  • Bundel pekerjaan dengan template pekerjaan yang mendefinisikan parameter tugas bingkai. Untuk informasi selengkapnya, lihat Elemen template pekerjaan untuk bundel pekerjaan.

  • Antrian yang terkait dengan armada yang mendukung chunking. Service-managed armada selalu menjalankan agen pekerja yang kompatibel. Customer-managed armada memerlukan agen pekerja versi 0.28.21 atau yang lebih baru pada pekerja.

Untuk menambahkan pemotongan tugas ke template pekerjaan
  1. Tambahkan TASK_CHUNKING ekstensi ke bagian atas template.yaml file Anda:

    specificationVersion: 'jobtemplate-2023-09' extensions: - TASK_CHUNKING

    Jika Anda melewatkan langkah ini, penciptaan pekerjaan gagal dengan kesalahan The CHUNK[INT] task parameter requires the TASK_CHUNKING extension.

  2. Di langkah tersebutparameterSpace, ubah jenis parameter tugas bingkai dari INT ke CHUNK[INT] dan tambahkan chunks properti:

    taskParameterDefinitions: - name: Frame type: CHUNK[INT] range: "{{Param.Frames}}" chunks: defaultTaskCount: 10 rangeConstraint: CONTIGUOUS

    Untuk semua bidang yang tersedia, lihatReferensi parameter tugas CHUNK [INT].

  3. Perbarui skrip langkah untuk menerima rentang bingkai alih-alih satu bingkai. DenganrangeConstraint: CONTIGUOUS, {{Task.Param.Frame}} variabel selalu meluas ke rentang dalam start-end format, sehingga skrip dapat membaginya dengan cut perintah:

    START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)" END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)"

    DenganrangeConstraint: NONCONTIGUOUS, variabel meluas ke ekspresi rentang arbitrer seperti1-3,5,7-20:2. Ubah ekspresi menjadi sintaks yang diterima aplikasi Anda. Untuk transformasi yang berfungsi, lihat contoh pemotongan tugas pada GitHub.

  4. Kirim bundel pekerjaan dengan Deadline Cloud CLI:

    deadline bundle submit my-job-bundle
  5. Untuk memverifikasi bahwa chunking berlaku, buka pekerjaan di monitor Deadline Cloud dan lihat daftar tugas langkah tersebut. Setiap tugas mewakili satu potongan dan menunjukkan rentang bingkai seperti al 1-10 ih-alih nomor bingkai tunggal.

Template pekerjaan lengkap berikut ini merender animasi Blender dalam potongan 10 frame:

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

Dalam contoh ini, Deadline Cloud membagi 100 frame menjadi potongan-potongan seperti 1-10 dan11-20, dan setiap tugas merender bagiannya dengan satu pemanggilan Blender.

Untuk informasi selengkapnya, lihat topik berikut: