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

Chạy automation không người trực

Một flow bạn ngồi canh và một flow chạy lúc 3 giờ sáng không phải cùng một flow. Đây là những thứ cần đổi trước khi để nó tự chạy.

1. Làm mọi kết thúc thành tường minh

Một lần chạy không người trực không thể hỏi bạn, nên mọi đường đi phải kết thúc ở một chỗ có chủ đích. Trước khi lên lịch bất cứ gì:

  • Nối mọi port thất bại bạn quan tâm. Một route chưa nối sẽ giết lần chạy với TRANSITION_NOT_FOUND — xem Mã lỗi.
  • Cho mỗi Stop một thông điệp. Thông điệp đó là thứ xuất hiện trong log, và log là tất cả những gì bạn có vào buổi sáng. "Not on a known screen after 2 BACK presses" nói cho bạn điều đã xảy ra; một id node thì không.
  • Chạy Validate. Một lỗi lúc soạn mà để đến 3 giờ sáng mới lộ thì bạn mất cả đêm.

2. Nâng rào chắn cho khớp tải thật

Mặc định là để bảo vệ một flow bạn đang canh. Một lần chạy dài không người trực sẽ đụng chúng.

Rào chắnVì sao nó nổ lúc đêmNên đặt gì
Max node executionsVòng lặp nhân lên — 200 lần qua 12 node là ~2400 lần thực thiNâng có chủ đích khi bạn thêm vòng lặp, không phải sau khi một lần chạy chết
Trần thời lượng chạyMột lô dài đơn giản là lâu hơn bản test có người canhNâng nó, hoặc chia nhỏ khối việc
Thất bại liên tiếpMột dịch vụ sập trông giống node hành động hỏng liên tụcĐể cái này chặt — nó chính là thứ ngăn một lần chạy vỡ đốt cả đêm

Xem Mô hình thực thi để biết mỗi cái bảo vệ điều gì.

3. Đặt một tiền điều kiện trước phần việc

Đừng để chính flow quyết định hôm nay có phải ngày nên chạy. Dùng Check Flow của scheduler: một flow nhỏ chạy trước flow chính và quyết định flow chính có nên chạy hay không.

Nếu phép kiểm không đạtHành vi
Skip, retry next timeBỏ chu kỳ này, thử lại sau cooldown kế
Stop this scheduleVô hiệu lịch đến khi bạn bật lại

Ưu tiên Skip-retry trừ khi một phép kiểm hỏng thật sự nghĩa là có gì đó vỡ.

Giữ phép kiểm thật nhỏ

Check Flow chạy mỗi chu kỳ, trước flow chính. Một phép kiểm mất 30 giây tốn 30 giây mỗi chu kỳ dù nó đậu.

4. Đặt bán kính thiệt hại

Đây là bước người ta hay bỏ. Hai trần, cả hai nằm trên lịch chạy:

  • Limit runs per day — một ngân sách ngày cứng. Đặt nó cho bất cứ gì chạm vào dịch vụ thật. Tiến độ hiện trên dashboard dạng 4/8 today, và flow đụng trần hiện Daily Limit Reached (không phải lỗi).
  • Only run within hours — bó các trigger vào một khung, để một thứ chạy hoang không thể chạy giữa trưa.

5. Cho chu kỳ chỗ để thở

Một lịch nổ khi instance đang bận thì bị bỏ, và không có bù. Mười trigger giờ bị bỏ không thành mười lần chạy khi instance rảnh.

Nên chu kỳ phải dài hơn lần chạy, có dư:

chu kỳ > thời gian chạy tệ nhất + thời gian lắng

Nếu flow của bạn mất 8 phút vào ngày xấu, chu kỳ 10 phút sẽ dành cả đời báo Skipped (busy). Hãy đặt 20.

Nếu mọi chu kỳ đều thật sự quan trọng, hãy kéo dài chu kỳ thay vì hy vọng — thiết kế chủ đích bỏ trigger bị trượt chứ không dựng một hàng việc cũ.

6. Chốt đúng múi giờ trước khi đi ngủ

Mỗi lịch mang múi giờ riêng, và giờ bạn nhập là trong múi đó. Panel Summary xem trước khoảnh khắc đã phân giải theo bốn cách — múi giờ của lịch, giờ địa phương của bạn, UTC, và việc DST có áp không.

Hãy đọc bản xem trước đó trước khi lưu. Một lịch 08:00 hằng ngày ở múi có DST sẽ lệch so với UTC hai lần mỗi năm, và "tháng 11 nó chạy sớm một tiếng" nếu không sẽ thành điều bí ẩn.

7. Quyết cái gì chạy, và theo thứ tự nào

Queue là một trình tự, không phải một lô:

  • Xếp theo phụ thuộc. Nếu flow B giả định flow A để app ở một màn nhất định, chúng phải liền nhau và đúng thứ tự.
  • Dùng afterPreviousSuccess để phụ thuộc đó thành thật chứ không phải hàm ý. Nếu không, một flow đầu vỡ vẫn để flow sau chạy.
  • Chọn khác thứ tự. Một flow không được chọn vẫn nằm trong queue, giữ vị trí, và bị bỏ qua âm thầm — đó đúng là cách tạm gác một flow.

Nhớ: một instance chạy một flow một lúc. Đồng thời đến từ nhiều instance hơn, mỗi cái một queue riêng.

8. Để lại thứ gì đó cho bạn đọc buổi sáng

  • Thông điệp Stop trên mọi kết thúc (bước 1). Đó là log của bạn.
  • Giữ lịch sử kết thúc của queue — success / failed / skipped mỗi mục là bằng chứng khi một lịch hành xử lạ.
  • Đừng để Run Evidence bật. Nó ghi một ảnh mỗi hành động; qua đêm là một thư mục khổng lồ. Chỉ bật khi đang tái hiện một vấn đề cụ thể — xem Gỡ một lần chạy thất bại.

Danh sách kiểm trước khi bay

  • Validate đạt, không vấn đề chặn
  • Mọi route thất bại bạn quan tâm đã nối
  • Mọi Stop đều có thông điệp
  • Max node executions đã nâng cho vừa các vòng lặp
  • Check Flow đã đặt, và nhỏ
  • Limit runs per day đã đặt
  • Chu kỳ dài hơn thời gian chạy tệ nhất một cách thoải mái
  • Đã đọc bản xem trước Summary, hiểu DST
  • Queue xếp theo phụ thuộc, có afterPreviousSuccess ở chỗ cần
  • Run Evidence tắt
  • Đã test bằng Test Flow ít nhất một lần từ đầu tới cuối

Trang liên quan