Bỏ qua để đến nội dung

Đ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, errordone — xem Cổng và liên kết.

Khai báo các tham số của kịch bản.

Đầu vàokhông có
Đầu ravalue — một đối tượng duy nhất { nom: valeur, … }
Cấu hìnhname (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ầu

Phơi ra một kết quả cho bên gọi kịch bản.

Đầu vàovalue
Đầu rakhông có — đây là một điểm cuối: không error, cũng không done
Cấu hìnhname

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.

Rẽ hai nhánh.

Đầu vàoleft, right
Đầu rathen, else
Cấu hìnhoperator: lt, lte, eq, gte, gt, ne, contains — cùng với leftright ở 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.

Rẽ N nhánh.

Đầu vàoon
Đầu ramột cổng case-<id> cho mỗi trường hợp được khai báo, cộng thêm default
Cấu hìnhcases: 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.

Biên phục hồi sau lỗi.

Đầu vàomaxAttempts, delay
Đầu raattempt (mỗi lần thử), exhausted (đã hết số lần thử)
Cấu hìnhxem bên dưới
TrườngMặc địnhVai trò
maxAttempts3Số lần thử tối đa
backofffixedfixed, linear hoặc exponential
delay + delayUnitĐộ trễ cơ sở (ms, s, min)
factor2Hệ số tăng ở chế độ hàm mũ
maxDelay + maxDelayUnitTrần của độ trễ
retryOnErrortrueThử lại khi có lỗi
retryOnFailurefalseThử lại khi thất bại về mặt nghiệp vụ
retryOnStatusDanh 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 »