Menjadwalkan tugas dependen

Dokumen ini menjelaskan cara membuat dan menjalankan tugas yang tidak dijadwalkan hingga tugas tertentu berhasil atau gagal. Untuk mempelajari status tugas lebih lanjut, lihat Ringkasan pembuatan dan eksekusi tugas.

Jika Anda memiliki beban kerja dengan persyaratan resource yang bervariasi, pertimbangkan untuk menggunakan tugas dependen untuk membuat rantai tugas otomatis yang masing-masing menggunakan VM terpisah. Misalnya, pisahkan jenis VM yang digunakan untuk operasi dengan permintaan rendah (seperti persiapan data) dan operasi yang membutuhkan komputasi intensif (seperti pemrosesan data). Dengan menggunakan tugas dependen untuk membantu mengoptimalkan konsumsi resource, Anda dapat mengurangi biaya dan penggunaan kuota.

Sebelum memulai

  1. Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
  2. Untuk mendapatkan izin yang diperlukan untuk membuat tugas, minta administrator untuk memberi Anda peran IAM berikut:

    Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Pembatasan

Tugas dependen memiliki batasan berikut:

  • Tugas dependen dapat memiliki hingga empat dependensi. Setiap dependensi harus berisi nama tugas unik dan salah satu status yang diperlukan berikut:

    • SUCCEEDED: berhasil
    • FAILED: gagal
    • FINISHED: berhasil atau gagal
  • Saat Anda membuat tugas dependen, semua tugas dependensinya harus ada.

  • Tugas dependen tidak dapat memasuki status terjadwal (SCHEDULED) hingga setiap tugas dependensi telah memasuki status yang diperlukan. Jika tugas dependensi tidak dapat memasuki status yang diperlukan, tugas dependensi akan langsung gagal tanpa dijadwalkan.

Membuat tugas dependen

Anda dapat membuat tugas yang bergantung menggunakan metode berikut:

Untuk menentukan bahwa tugas bersifat dependen, sertakan kolom dependencies[].items, yang mendukung satu atau beberapa dependensi yang ditentukan sebagai key-value pair, dalam isi utama di file JSON:

"dependencies": [
  {
    "items": {
      "DEPENDENCY_JOB_NAME": "REQUIRED_STATE"
    }
  }
]

Ganti kode berikut:

  • DEPENDENCY_JOB_NAME: nama tugas dependensi, yang harus mencapai status yang diperlukan sebelum tugas dependen ini diizinkan untuk dijadwalkan.

  • REQUIRED_STATE: status yang diperlukan untuk tugas dependensi yang sesuai, yang harus berupa SUCCEEDED, FAILED, atau FINISHED.

Misalnya, tugas dependen dengan tiga dependensi dapat memiliki file konfigurasi JSON yang mirip dengan berikut:

{
  "taskGroups": [
    {
      "taskSpec": {
        "runnables": [
          {
            "script": {
              "text": "echo Hello World! This is task $BATCH_TASK_INDEX."
            }
          }
        ]
      },
      "taskCount": 3
    }
  ],
  "dependencies": [
    {
      "items": {
        "DEPENDENCY_JOB_NAME_1": "REQUIRED_STATE_1",
        "DEPENDENCY_JOB_NAME_2": "REQUIRED_STATE_2",
        "DEPENDENCY_JOB_NAME_3": "REQUIRED_STATE_3"
      }
    }
  ]
}

Langkah selanjutnya