Lihat konektor yang didukung untuk Integration Aplikasi.

Strategi penanganan error untuk tugas

Strategi penanganan error untuk tugas menentukan tindakan yang akan diambil 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 menampilkan 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 Retry condition, masukkan kondisi yang harus cocok dengan error agar strategi error ini dapat dieksekusi. Misalnya, untuk tugas Call REST Endpoint, untuk menjalankan strategi error jika kode error cocok dengan 404, masukkan kode berikut:
        $`ErrorInfo.code`$ = 404
        Untuk 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 kondisional yang cocok. Kebijakan kegagalan default bersifat opsional.
    3. Di bagian Penangkap error, tambahkan penangkap error untuk integrasi Anda.

Untuk 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 akan terus menjalankan tugas berikutnya dengan asumsi bahwa 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, status integrasi akan ditandai sebagai Berhasil.
Memulai ulang integrasi dengan backoff Menjalankan seluruh integrasi dari tugas pertama. Namun, tugas tersebut 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.
Mencoba lagi tugas dengan backoff eksponensial Menjalankan integrasi dari tugas yang gagal. Jika tugas gagal selama percobaan ulang, interval waktu antara setiap percobaan ulang akan meningkat dengan pangkat 2. Ada penundaan 1 hingga 5 detik yang ditambahkan ke waktu tunggu.

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 ini berlanjut hingga jumlah maksimum percobaan ulang tercapai atau tugas berhasil, mana saja yang lebih awal.

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

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

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

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 ini berlanjut hingga jumlah maksimum percobaan ulang tercapai atau tugas berhasil, mana saja yang lebih awal.

Percobaan ulang backoff

Batas konkurensi default ditetapkan ke 50 eksekusi untuk setiap project dan region. Eksekusi yang gagal dimasukkan ke dalam antrean dan dicoba ulang menggunakan algoritma backoff eksponensial, yang secara bertahap meningkatkan waktu tunggu antar-percobaan ulang hingga 10 kali. Contoh:

  1. Menjalankan 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 dieksekusi. 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 kesetaraan antara dua nilai $var$ = "value"
!= Memeriksa ketidaksetaraan antara dua nilai $var$ != "value"
< Memeriksa apakah nilai kurang dari nilai lain 5 < 10
<= Memeriksa apakah nilai kurang dari atau sama dengan nilai lain $var$ <= 5
> Memeriksa apakah nilai lebih besar dari nilai lain 1 > 0
>= Memeriksa apakah nilai lebih besar dari atau sama dengan nilai lain $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 true jika kedua ekspresi dievaluasi ke true. $a$ > $b$ AND $b$ < $c$
ATAU Memeriksa dua ekspresi dan menampilkan true jika salah satu ekspresi dievaluasi ke true. $a$ > $b$ OR $b$ < $c$
NOT Operator negasi. Membalik hasil ekspresi. NOT($var$ = "value")

Fungsi yang didukung

Tabel berikut menjelaskan fungsi yang didukung yang 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.