Strategi penanganan error untuk tugas

Strategi penanganan error untuk tugas menentukan tindakan yang harus dilakukan jika tugas gagal karena error sementara.

Mengonfigurasi strategi penanganan error

Untuk mengonfigurasi strategi penanganan error untuk tugas, ikuti langkah-langkah berikut:

  1. Klik tugas yang ada di editor integrasi Anda. Panel konfigurasi tugas akan muncul.
  2. Di panel konfigurasi tugas, luaskan bagian Penanganan error. Gambar berikut menunjukkan bagian Penanganan error:

    Strategi penanganan error Strategi penanganan error

    Di bagian Penanganan error, ikuti langkah-langkah berikut:

    1. Untuk menambahkan kebijakan kegagalan baru, klik + Tambahkan Kebijakan Kegagalan. Jika beberapa kebijakan kegagalan bersyarat dikonfigurasi, kebijakan tersebut akan diperiksa dan dicocokkan secara berurutan.
      1. Di kolom Retry strategy, pilih strategi penanganan error yang ingin Anda gunakan. Untuk daftar strategi, lihat Strategi percobaan ulang.
      2. Di kolom Kondisi percobaan ulang, masukkan kondisi yang harus cocok dengan error agar strategi error ini dapat dijalankan. Misalnya, untuk Call REST Endpoint task, guna menjalankan strategi error jika kode error cocok dengan 404, masukkan berikut ini:
        $`ErrorInfo.code`$ = 404
        Untuk mengetahui informasi tentang cara menambahkan kondisi ini, lihat Kondisi percobaan ulang.
    2. Di bagian Kebijakan error default, tambahkan kebijakan default yang harus diterapkan jika tidak ada kebijakan kegagalan bersyarat yang cocok. Kebijakan kegagalan default bersifat opsional.
    3. Di bagian Error catcher, tambahkan error catcher untuk integrasi Anda.

Untuk mengetahui informasi tentang kode error dan penanganan error, lihat Penanganan error.

Strategi percobaan ulang

Tabel berikut menjelaskan berbagai strategi penanganan error yang dapat Anda gunakan untuk tugas:

Jenis strategi Deskripsi
Fatal Menghentikan eksekusi seluruh integrasi dan menandai status eksekusi sebagai Gagal.
Abaikan Mengabaikan kegagalan tugas. Integrasi terus menjalankan tugas berikutnya dengan asumsi tugas yang gagal telah Berhasil.
Tidak ada Menghentikan eksekusi tugas dan menandai status integrasi sebagai Gagal. Jika ada jalur alternatif ke tugas akhir (tugas daun), tugas di jalur alternatif akan dijalankan. Jika semua tugas di jalur alternatif berhasil dijalankan, menandai status integrasi sebagai Berhasil.
Mulai ulang integrasi dengan penundaan Menjalankan seluruh integrasi dari tugas pertama. Namun, tugas mungkin gagal lagi. Untuk menghindari kegagalan berulang, tentukan interval waktu antara mulai ulang di kolom Interval percobaan ulang (dalam detik) dan jumlah upaya mulai ulang yang diizinkan di kolom Jumlah percobaan ulang maksimum.
Coba lagi tugas dengan backoff eksponensial Menjalankan integrasi dari tugas yang gagal. Jika tugas gagal selama percobaan ulang, interval waktu antara setiap upaya percobaan ulang akan meningkat dengan pangkat 2. Ada penundaan 1 hingga 5 detik yang ditambahkan ke waktu mundur.

Misalnya, jika interval percobaan ulang yang ditentukan adalah 3 detik, percobaan ulang pertama akan terjadi setelah 3 detik. Percobaan ulang kedua terjadi setelah 9 detik, percobaan ulang ketiga setelah 81 detik, dan seterusnya. Proses berlanjut hingga jumlah maksimum percobaan ulang tercapai atau tugas berhasil, mana saja yang lebih dulu.

Coba lagi tugas dengan interval tetap Menjalankan integrasi dari tugas yang gagal. Jika tugas gagal selama percobaan ulang, interval waktu antara setiap upaya percobaan ulang akan tetap konstan.

Misalnya, jika interval percobaan ulang yang ditentukan adalah 3 detik, percobaan ulang akan terjadi setiap 3 detik. Proses berlanjut hingga jumlah maksimum percobaan ulang tercapai atau tugas berhasil, mana saja yang lebih dulu.

Coba lagi tugas dengan backoff linear Menjalankan integrasi dari tugas yang gagal. Jika tugas gagal selama percobaan ulang, interval waktu antara setiap upaya percobaan ulang akan meningkat secara linear. Ada penundaan 1 hingga 5 detik yang ditambahkan ke waktu mundur.

Misalnya, jika interval percobaan ulang yang ditentukan adalah 3 detik, percobaan ulang pertama akan terjadi setelah 3 detik. Percobaan ulang kedua terjadi setelah 6 detik, percobaan ulang ketiga setelah 9 detik, dan seterusnya. Proses berlanjut hingga jumlah maksimum percobaan ulang tercapai atau tugas berhasil, mana saja yang lebih dulu.

Percobaan ulang backoff

Batas serentak default ditetapkan ke 50 eksekusi untuk setiap project dan region. Eksekusi yang gagal diantrekan dan dicoba ulang menggunakan algoritma backoff eksponensial, yang secara bertahap meningkatkan waktu tunggu antara percobaan ulang hingga 10 kali. Contoh:

  1. Jalankan integrasi.
  2. Jika permintaan gagal, tunggu 10 menit dan coba lagi permintaan tersebut.
  3. Jika permintaan gagal, tunggu 20 menit dan coba lagi permintaan tersebut.
  4. Jika permintaan gagal, tunggu 40 menit dan coba lagi permintaan tersebut.
  5. Dan seterusnya, hingga percobaan ulang backoff maksimum 10 kali.

Kondisi percobaan ulang

Kondisi percobaan ulang menentukan kondisi yang harus cocok agar strategi penanganan error dapat dijalankan. Tabel berikut menjelaskan operator dan fungsi yang didukung yang dapat Anda gunakan dalam kondisi percobaan ulang:

Operator yang didukung

Tabel berikut menjelaskan operator yang didukung dan tersedia untuk digunakan dalam kondisi percobaan ulang.

Operator Deskripsi Contoh
= Memeriksa kesamaan antara dua nilai $var$ = "value"
!= Memeriksa ketidaksetaraan antara dua nilai $var$ != "value"
< Memeriksa apakah suatu nilai kurang dari nilai lainnya 5 < 10
<= Memeriksa apakah suatu nilai kurang dari atau sama dengan nilai lain $var$ <= 5
> Memeriksa apakah suatu nilai lebih besar dari nilai lainnya 1 > 0
>= Memeriksa apakah suatu nilai lebih besar dari atau sama dengan nilai lainnya $var$ >= 0
: Memeriksa apakah string berisi substring di dalamnya, atau memeriksa apakah daftar berisi nilai primitif tertentu.

$longString$ : "substring"

$list of values$ : "value"

AND Memeriksa dua ekspresi dan menampilkan nilai benar jika kedua ekspresi bernilai benar. $a$ > $b$ AND $b$ < $c$
ATAU Memeriksa dua ekspresi dan menampilkan nilai benar jika salah satu ekspresi menghasilkan nilai benar. $a$ > $b$ OR $b$ < $c$
NOT Operator negasi. Membalikkan hasil ekspresi. NOT($var$ = "value")

Fungsi yang didukung

Tabel berikut menjelaskan fungsi yang didukung dan tersedia untuk digunakan dalam kondisi percobaan ulang.

Fungsi Deskripsi
exists(VARIABLE) Memeriksa apakah variabel tertentu ada
does_not_exist(VARIABLE) Memeriksa apakah variabel tertentu tidak ada
is_empty(VARIABLE) Memeriksa apakah variabel tertentu adalah daftar DAN kosong. Mendukung jenis variabel array kecuali array JSON.
is_not_empty(VARIABLE) Memeriksa apakah variabel tertentu adalah daftar DAN tidak kosong. Mendukung jenis variabel array kecuali array JSON.