Topik ini menjelaskan langkah-langkah paralel beserta contoh terkait.
Ikhtisar
Langkah paralel digunakan untuk mengeksekusi beberapa langkah anak secara bersamaan. Langkah paralel mendefinisikan beberapa cabang, masing-masing berisi serangkaian langkah serial.
Setiap cabang dalam langkah paralel sesuai dengan variabel lokal. Saat langkah paralel dijalankan, langkah-langkah serial di semua cabang diproses secara bersamaan. Langkah-langkah serial tersebut memodifikasi variabel lokal yang sesuai dengan cabangnya. Setelah semua cabang selesai diproses, pemetaan keluaran dapat digunakan untuk mengonversi array variabel lokal cabang menjadi output dari langkah paralel.
Langkah paralel memiliki atribut-atribut berikut:
- tipe: Wajib. Jenis langkah. Nilai parallel menunjukkan bahwa langkah tersebut merupakan langkah paralel.
- nama: Wajib. Nama langkah.
- cabang-cabang: Wajib. Beberapa cabang bertipe array. Setiap elemen sesuai dengan satu cabang.
- langkah-langkah: Wajib. Beberapa langkah serial yang didefinisikan untuk sebuah cabang.
- akhir: Opsional. Menentukan apakah akan melanjutkan ke langkah-langkah berikutnya setelah langkah saat ini selesai.
- pemetaanMasukan: Opsional. Pemetaan masukan.
- pemetaanKeluaran: Opsional. Pemetaan keluaran. Dalam langkah ini,
$localadalah sebuah array. Setiap elemen dalam array adalah objek JSON yang mencatat hasil eksekusi setiap cabang.Catatan Jika tidak ada pemetaan keluaran yang ditentukan, langkah ini tidak menghasilkan output secara default.
Contoh
Alur sampel berikut mendefinisikan langkah paralel. Langkah paralel ini berisi dua cabang, dan setiap cabang berisi langkah pass.
version: v1
type: flow
steps:
- type: parallel
name: myparallel
branches:
- steps:
- type: pass
name: pass1
outputMappings:
- target: result
source: pass1
- steps:
- type: pass
name: pass2
outputMappings:
- target: result
source: pass2
outputMappings:
- target: result
source: $local[*].result
- Informasi berikut adalah output dari
pass1:{ "result": "pass1" } - Informasi berikut adalah output dari
pass2:{ "result": "pass2" } - Informasi berikut adalah output dari
myparallel:{ "result": ["pass1", "pass2"] }