

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
<a name="build-job-bundle-chunking-add"></a>

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](build-job-bundle-chunking.md)

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](build-job-bundle-template.md).
+ 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.`

1. Di langkah tersebut`parameterSpace`, 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, lihat[Referensi parameter tugas CHUNK [INT]](build-job-bundle-chunking-reference.md).

1. Perbarui skrip langkah untuk menerima rentang bingkai alih-alih satu bingkai. Dengan`rangeConstraint: 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)"
   ```

   Dengan`rangeConstraint: NONCONTIGUOUS`, variabel meluas ke ekspresi rentang arbitrer seperti`1-3,5,7-20:2`. Ubah ekspresi menjadi sintaks yang diterima aplikasi Anda. Untuk transformasi yang berfungsi, lihat contoh pemotongan [ tugas ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/task_chunking) pada GitHub.

1. Kirim bundel pekerjaan dengan Deadline Cloud CLI:

   ```
   deadline bundle submit {{my-job-bundle}}
   ```

1. 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` dan`11-20`, dan setiap tugas merender bagiannya dengan satu pemanggilan Blender.

Untuk informasi selengkapnya, lihat topik berikut:
+ [Kelompokkan bingkai menjadi potongan-potongan dengan pemotongan tugas di Deadline Cloud](examples-jb-task-chunking.md)— sampel Ready-to-submit pemotongan, termasuk varian yang tidak bersebelahan.
+ [Cara mengirimkan pekerjaan ke Deadline Cloud](submit-jobs-how.md)— Kirim bundel pekerjaan ke antrian Anda.