Chuyển tới nội dung chính

Wait (Chờ)

Tạm dừng flow một khoảng thời gian cố định.

Mục đích

Giữ flow một số mili giây — để hiệu ứng chạy xong, màn hình ổn định, hay cuộc gọi mạng trở về trước bước kế.

Nó là đồng hồ thuần túy. Nó không nhìn màn hình.

Khi nào dùng

  • Để hiệu ứng hoặc chuyển cảnh hoàn tất trước khi đọc màn.
  • Ổn định hiển thị sau Swipe hay Zoom.
  • Chủ ý điều nhịp flow để nó không hành động ở tốc độ máy.

Khi nào không dùng

  • Chờ thứ gì xuất hiện. Find Image hoặc Check Region với timeout làm việc đó đúng cách: trả về ngay khoảnh khắc thứ đó hiện thay vì luôn đốt trọn khoảng trễ.
  • Vá sự chập chờn. Wait "thường thì chạy" là race condition khoác thêm bước.
Quy tắc ngón tay cái

Chờ điều kiện khi có điều kiện. Chờ thời gian chỉ khi không gì quan sát được đánh dấu điểm kết thúc của thứ bạn chờ.

Điều kiện

Không có. Wait chạy không cần thiết bị kết nối.

Cách nó chạy

  1. Kiểm thời lượng hợp lệ (50–120000 ms).
  2. Chế độ random: bốc một trễ nguyên đều giữa min và max cho lần thực thi này.
  3. Ngủ theo các lát nhỏ hủy được để một cú Stop có hiệu lực nhanh.
  4. Nếu lần chạy bị hủy trong lúc chờ, rẽ Cancelled; nếu không rẽ Success và báo thời gian đã chờ thật.

Ngủ theo lát là lý do một Wait 60 giây không chặn bạn dừng lần chạy.

Thiết lập

Thiết lậpKiểuKhoảngMặc địnhTác dụng
Wait modelựa chọnfixed, randomfixedMột trễ cố định, hay trễ ngẫu nhiên mới mỗi lần thực thi
Durationinteger50–120000 msBắt buộc. Trễ cố định, và giá trị dự phòng nếu cặp random thiếu
Duration mininteger50–120000 msCận dưới chế độ random
Duration maxinteger50–120000 msCận trên chế độ random
Reasonstring≤ 500 ký tựGhi chú hiện trong log giải thích vì sao có khoảng nghỉ này

Chế độ random

Với waitMode: random, runtime bốc trễ nguyên đều mới trong [min, max] mỗi lần thực thi. Một Wait trong vòng lặp vì thế nghỉ khác nhau từng lượt.

Điều này quan trọng hai lẽ: nó chặn flow phát ra chữ ký thời gian hoàn hảo đều, và nó tự nhiên dàn tải khi nhiều instance chạy cùng flow.

Duration vẫn bắt buộc — nó là giá trị cố định và dự phòng nếu cặp random không đủ.

Hãy dùng ô Reason

Reason không tốn gì và hiện trong log lần chạy. "để bản đồ ổn định sau căn giữa" cho bạn biết sáu tháng nữa vì sao 900 ms đó tồn tại. Con số ma thuật không ghi chú là cách flow mục ruỗng.

Port

PortĐi vào khiBắt buộc
SuccessTrọn khoảng chờ trôi qua (output: số ms đã chờ thật)
CancelledLần chạy bị dừng trong lúc chờKhông — không bao giờ được đi
FatalThời lượng ngoài 50–120000 msKhông — không bao giờ được đi

Wait không có port Failure và Timeout. Một khoảng chờ không thể hỏng; nó chỉ có thể bị hủy hoặc cấu hình sai.

Ví dụ cơ bản

Để hiệu ứng mở chạy xong:

  • Duration: 1000 ms
  • Reason: "opening animation"

Ví dụ thực tế — ổn định sau cử chỉ

Khoảng ổn định ngẫu nhiên hấp thụ chênh lệch giữa máy nhanh và máy chậm, và phép phát hiện sau đó xác nhận kết quả thay vì giả định.

Ví dụ nâng cao — điều nhịp vòng lặp

Trong vòng lặp lặp một hành động nhiều lần, trễ cố định làm mọi lượt y hệt nhau. Trễ ngẫu nhiên thì không:

  • Wait mode: random
  • Duration min: 1000, max: 1500
  • Reason: "nhịp giống người giữa các chuyến"

Best practices

  • Thay Wait bằng phát hiện ở mọi nơi có điều kiện. Đây là cú thắng tốc độ lớn nhất trong đa số flow.
  • Ngẫu nhiên hóa các khoảng chờ lặp lại. Trễ cố định trong vòng lặp vừa chậm vừa đều hơn mức cần.
  • Luôn điền Reason.
  • Ưu tiên một Wait chủ đích hơn nhiều Wait rải rác. Thấy ba Wait liền nhau nghĩa là flow đang đoán mò.
  • Không bao giờ dùng Wait để "làm retry chạy". Cấu hình backoff trên retry policy của node.

Ghi chú hiệu năng

  • Wait tốn đúng thời lượng của nó, mọi lần. Đây là khác biệt then chốt với node phát hiện — trả về ngay khi điều kiện thỏa và chỉ đốt trọn timeout ở ca xấu nhất.
  • Thay Wait 2000 ms bằng Find Image timeout 2000 ms thường chỉ tốn 200–400 ms thực tế, vì ảnh thường có mặt nhanh.
  • Wait nhân lên trong vòng lặp. 1500 ms trong vòng 200 lượt là năm phút không làm gì.

Ghi chú bộ nhớ

  • Wait không cấp phát gì, không giữ khung hình. Footprint bằng không.
  • Vì ngủ theo lát hủy được, Wait dài không giữ tài nguyên nào mở.

Lỗi thường gặp

LỗiHậu quảCách sửa
Wait cố định khắp nơiChậm mà vẫn chập chờn — thiết bị khác nhauChờ trên kết quả phát hiện
Quá ngắn so với hiệu ứngNode kế đọc khung giữa chuyển cảnhNâng lên, hoặc xác minh bằng phát hiện
Dùng Wait thay backoff retryRetry có backoff riêngCấu hình backoffMs trên node
Duration dưới 50 msFatal — ngoài khoảngTối thiểu 50 ms
Kỳ vọng port FailureKhông cóWait không hỏng được

Khắc phục sự cố

Flow chậm mà node nào cũng ổn. Cộng các Wait lại. Trễ cố định là thủ phạm thường thấy khi flow tốn phút trong khi có thể tốn giây.

Khoảng chờ như bị bỏ qua. Kiểm node có nằm trên nhánh được thực thi không — nhánh không nối không bao giờ chạy.

Node rẽ Fatal. Thời lượng ngoài 50–120000 ms. Ở chế độ random kiểm cả hai cận.

Dừng lần chạy mất một nhịp khi đang chờ dài. Bình thường — giấc ngủ chia lát, việc hủy rơi vào ranh giới lát kế thay vì tức thì.

FAQ

Chờ dài nhất bao lâu? 120000 ms — khoảng hai phút. Nghỉ dài hơn, dùng Scheduler.

Wait ngẫu nhiên có bốc lại mỗi lượt lặp? Có, mỗi lần thực thi một lần.

Thời lượng lấy từ biến được không? durationMs nhận tham chiếu {{biến}} nguyên chuỗi. Hai cận random là số nguyên trơn.

Wait có tính vào rào chắn thời lượng lần chạy? Có. Mọi thời gian đồng hồ tính vào maxRuntimeDurationMs.

Node liên quan

  • Find Image — chờ điều kiện thay vì thời gian
  • Check Region — chờ màu hoặc thay đổi
  • Swipe / Zoom — các cử chỉ cần ổn định

Trang liên quan