Điều khiển
Năm chiếc hộp điều khiển luồng chạy của một kịch bản.
Nhắc lại: mọi chiếc hộp còn có các cổng ngầm định in, error và done — xem
Cổng và liên kết.
Input / Param (đầu vào / tham số)
Section titled “Input / Param (đầu vào / tham số)”Khai báo các tham số của kịch bản.
| Đầu vào | không có |
| Đầu ra | value — một đối tượng duy nhất { nom: valeur, … } |
| Cấu hình | name (tên của tham số), valueType (kiểu và giá trị mặc định của nó) |
Các giá trị được cung cấp lúc khởi chạy, bằng --param nom=valeur trên dòng
lệnh, hoặc được hỏi theo cách tương tác nếu quá trình chạy tới chiếc hộp mà
chưa có giá trị nào.
Input « baseUrl » (chuỗi) ──► cổng env của yêu cầuOutput / Return (đầu ra / trả về)
Section titled “Output / Return (đầu ra / trả về)”Phơi ra một kết quả cho bên gọi kịch bản.
| Đầu vào | value |
| Đầu ra | không có — đây là một điểm cuối: không error, cũng không done |
| Cấu hình | name |
Một kịch bản được gọi bởi một hành động Chạy kịch bản sẽ khiến mỗi đầu ra
của nó hiện ra trên cổng output:<nom> của bên gọi.
If (nếu)
Section titled “If (nếu)”Rẽ hai nhánh.
| Đầu vào | left, right |
| Đầu ra | then, else |
| Cấu hình | operator: lt, lte, eq, gte, gt, ne, contains — cùng với left và right ở dạng giá trị nguyên văn |
Mẹo: nếu không có toán hạng nào được đấu dây hay điền vào, chiếc hộp chỉ đơn
giản kiểm tra tính đúng của tín hiệu nhận được trên in. Đó là kiểu “nếu đã đi
tới được đây” mà không cần điều kiện tường minh.
Switch (rẽ nhiều nhánh)
Section titled “Switch (rẽ nhiều nhánh)”Rẽ N nhánh.
| Đầu vào | on |
| Đầu ra | một cổng case-<id> cho mỗi trường hợp được khai báo, cộng thêm default |
| Cấu hình | cases: một danh sách gồm { id, value } |
Nên dùng thay cho một chuỗi If nối tiếp ngay khi có hơn hai lối ra: mỗi trường hợp là một sợi dây riêng, dễ nhìn.
Retry (thử lại)
Section titled “Retry (thử lại)”Biên phục hồi sau lỗi.
| Đầu vào | maxAttempts, delay |
| Đầu ra | attempt (mỗi lần thử), exhausted (đã hết số lần thử) |
| Cấu hình | xem bên dưới |
| Trường | Mặc định | Vai trò |
|---|---|---|
maxAttempts | 3 | Số lần thử tối đa |
backoff | fixed | fixed, linear hoặc exponential |
delay + delayUnit | — | Độ trễ cơ sở (ms, s, min) |
factor | 2 | Hệ số tăng ở chế độ hàm mũ |
maxDelay + maxDelayUnit | — | Trần của độ trễ |
retryOnError | true | Thử lại khi có lỗi |
retryOnFailure | false | Thử lại khi thất bại về mặt nghiệp vụ |
retryOnStatus | — | Danh sách mã trạng thái HTTP, ví dụ [429, 503] |
Đồ thị con đấu vào attempt chính là phạm vi được thử lại. Nếu thành công, luồng
đi ra qua done. Chiếc hộp này không có cổng error: chính nó là biên.
Retry (3, hàm mũ, [429,503]) ├─ attempt ──► Yêu cầu HTTP ──► Assert └─ exhausted ──► Throw « dịch vụ không khả dụng »