Giao diện
Cấu hình node - Parallel
Node chạy song song nhiều nhánh đồng thời với các chế độ: all (chờ tất cả), any (bất kỳ), race (nhanh nhất).
Bảng tham số cấu hình
| Tham số | Kiểu | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|---|
mode | string | Có | — | Chế độ: all, any, race |
branches | array | Có | — | Danh sách nhánh con cần thực thi |
continueOnError | boolean | Không | false | Tiếp tục nhánh khác nếu một nhánh lỗi (chỉ với mode all) |
Dữ liệu đầu ra (Output)
| Tên | Kiểu | Mô tả |
|---|---|---|
results | array | Mảng kết quả từ các nhánh (mode all) |
result | any | Kết quả nhánh đầu tiên hoàn thành (mode any/race) |
errors | array | Mảng lỗi từ các nhánh thất bại |
So sánh các mode
| Mode | Chờ | Kết quả | Khi 1 nhánh lỗi | Tương tự |
|---|---|---|---|---|
all | Tất cả hoàn thành | Mảng results | Dừng (hoặc tiếp nếu continueOnError) | Promise.all |
any | Bất kỳ thành công | Result đầu tiên thành công | Tiếp tục chờ nhánh khác | Promise.any |
race | Nhánh nhanh nhất | Result nhanh nhất (kể cả lỗi) | Lấy luôn | Promise.race |
Lưu ý quan trọng
- Tất cả nhánh nhận cùng context (read-only) - thay đổi trong 1 nhánh không ảnh hưởng nhánh khác
- Mode
race: nhánh còn lại vẫn chạy nhưng kết quả bị bỏ qua - Mode
all+continueOnError: false: 1 nhánh lỗi sẽ dừng toàn bộ parallel - Không nên lồng quá nhiều parallel (2-3 cấp max) để tránh phức tạp khi debug
- Mỗi nhánh có thể chứa nhiều node nối tiếp nhau (sub-workflow)
- Parallel giảm thời gian xử lý tổng thể khi các nhánh độc lập với nhau