Topik ini menjelaskan Negara Paralel dan menyertakan contoh terkait.
Ikhtisar
Negara Paralel digunakan untuk mengeksekusi beberapa negara anak secara bersamaan. Negara Paralel mendefinisikan beberapa cabang, masing-masing berisi serangkaian negara anak.
Ketika sebuah Negara Paralel dijalankan, semua negara anak dalam setiap cabang dieksekusi secara bersamaan. Setelah semua cabang selesai dieksekusi, sistem mengembalikan keluaran map[string]any yang mencakup hasil dari semua cabang secara default. Sistem kemudian menggunakan konstruktor keluaran untuk memproses hasil lebih lanjut.
Anda dapat mengonfigurasi hingga 50 cabang untuk sebuah Negara Paralel.
Tabel berikut menjelaskan atribut yang dimiliki oleh Negara Paralel.
Atribut | Tipe data | Diperlukan | Deskripsi | Contoh |
Nama | string | Ya | Nama dari negara. | nama-negara-saya |
Deskripsi | string | Tidak | Deskripsi dari negara. | jelaskan di sini |
Tipe | string | Ya | Tipe dari negara. | Parallel |
InputConstructor | map[string]any | Tidak | Konstruktor masukan. | Lihat Masukan dan keluaran. |
Cabang | ParallelBranch | Ya | Cabang-cabang yang akan dieksekusi secara paralel. | Lihat ParallelBranch. |
OutputConstructor | map[string]any | Tidak | Konstruktor keluaran. | Lihat bagian State OutputConstructor dari topik "Masukan dan keluaran". |
Selanjutnya | string | Tidak | Negara selanjutnya yang akan dieksekusi setelah negara saat ini selesai. Jika atribut End bernilai true, Anda tidak perlu menentukan atribut ini. | negara-selanjutnya-saya |
Akhir | bool | Tidak | Menentukan apakah akan mengakhiri ruang lingkup saat ini. | true |
Ulangi | Retry | Tidak | Informasi tentang kebijakan ulang. | Lihat Penanganan kesalahan. |
Tangkap | Catch | Tidak | Informasi tentang kebijakan tangkap. | Lihat Penanganan kesalahan. |
ParallelBranch
Atribut | Tipe data | Diperlukan | Deskripsi | Contoh |
Negara | array | Ya | Array dari negara yang terdapat dalam alur kerja. | Lihat bagian Kasus penggunaan dari topik ini. |
MulaiDi | string | Ya | Negara dari mana eksekusi alur kerja dimulai. | tugas awal saya |
Kasus penggunaan
Alur kerja sampel berikut mendefinisikan sebuah Negara Paralel. Negara Paralel tersebut berisi dua cabang, dan masing-masing cabang memiliki sebuah negara anak Pass.
Type: StateMachine
Name: my-wkfl
SpecVersion: v1
StartAt: Parallel1
States:
- Type: Parallel
Name: Parallel1
End: true
Branches:
- StartAt: Pass1
States:
- Type: Pass
Name: Pass1
End: true
OutputConstructor:
FieldA: 123
- StartAt: Pass2
States:
- Type: Pass
InputConstructor:
FieldA: 321
Name: Pass2
End: trueKode berikut menunjukkan keluaran dari negara anak Pass1.
{ "FieldA": 123 }Kode berikut menunjukkan keluaran dari negara anak Pass2.
{ "FieldA": 321 }Kode berikut menunjukkan keluaran dari negara Parallel1. Nama default diberikan kepada cabang-cabang. Keluaran dibangun dalam format Branch<Index>.
{ "Branch0": { "FieldA": 123 }, "Branch1": { "FieldA": 321 } }