Một số thao tác MoreLogin nhận việc trước khi trình duyệt, cloud phone, tệp, ứng dụng hoặc lần chạy RPA bên dưới đạt trạng thái cuối. Phản hồi gửi thành công nghĩa là request đã được tiếp nhận; không phải luôn nghĩa là trạng thái yêu cầu đã đạt được.
| Trạng thái | Ý nghĩa | Việc client nên làm |
|---|---|---|
| Đã gửi | API đã nhận lệnh hoặc đã tạo tác vụ | Lưu các ID trả về và requestId; đừng gửi lại ngay cùng một thao tác ghi |
| Đang chờ hoặc đang chạy | Thao tác phía sau vẫn đang tiến hành | Polling endpoint trạng thái/kết quả đã tài liệu hóa với khoảng thời gian tăng dần |
| Thành công | Tài nguyên hoặc tác vụ đích đã đạt trạng thái cuối thành công | Ngừng polling và tiếp tục luồng công việc |
| Thất bại | Endpoint trạng thái/kết quả báo thất bại hoặc lỗi nghiệp vụ ở trạng thái cuối | Ngừng thử lại tự động; giữ lại ID, chi tiết lỗi và requestId |
| Kết quả chưa xác định | Thao tác ghi bị timeout hoặc kết nối đóng mà không có phản hồi dùng được | Hãy truy vấn trạng thái hiện tại của tài nguyên/tác vụ trước khi quyết định thử lại |
- Bắt đầu khoảng 1 giây, rồi tăng khoảng cách lên 2, 4, 8 giây, giới hạn ở 15–30 giây.
- Thêm jitter để nhiều client không polling cùng một thời điểm.
- Dừng khi đạt trạng thái cuối đã tài liệu hóa; đừng polling vô hạn.
- Chỉ coi
data: nulllà đang chờ khi endpoint ghi rõ hành vi đó. - Timeout truyền tải ở một thao tác ghi không phải bằng chứng thất bại.
| Luồng | Thao tác gửi | Thao tác quan sát | Trạng thái cuối |
|---|---|---|---|
| Mở/đóng cloud browser | POST /cloudbrowser/start hoặc /cloudbrowser/stop | POST /cloudbrowser/page | Runtime đạt trạng thái mong muốn hoặc biến mất sau khi đóng |
| Bật/tắt Cloud Phone | POST /cloudphone/powerOn hoặc /cloudphone/powerOff | POST /cloudphone/page | envStatus=4 đã bật hoặc envStatus=2 đã tắt; 1 là lỗi tạo |
| Tải tệp lên Cloud Phone | Tải lên URL đã ký, rồi POST /cloudphone/uploadFile | POST /cloudphone/uploadFileResult | status=1 thành công hoặc status=2 thất bại; data: null và status=0 là đang chờ |
| Tải xuống từ Cloud Phone | POST /cloudphone/download | POST /cloudphone/download/result | status=20 thành công, 30 thất bại, 40 đã hủy; 10 là đang chạy |
| Cài đặt ứng dụng | POST /cloudphone/app/install | POST /cloudphone/app/installedList | Gói được yêu cầu xuất hiện trong danh sách ứng dụng đã cài |
| Lên lịch/chạy RPA | POST /cloudphone/rpa/task/save hoặc /onceTask/save | POST /cloudphone/rpa/task/page, /subTask/page và /subTask/detail/{id} | taskState=2 đã xong hoặc 3 đã hủy; xem handleResult (0 thất bại, 1 thành công) |
| Phát trực tiếp | POST /cloudphone/live/start hoặc /live/end | POST /cloudphone/live/status | Trạng thái xác nhận đã bắt đầu hoặc đã dừng phát |
| Tải lên cloud storage | POST /cloudstorage/upload/init, sau đó PUT lên object store | POST /cloudstorage/upload/complete sau khi mọi PUT cần thiết thành công | Request hoàn tất thành công; đừng bao giờ gọi complete trước khi tải đối tượng lên thành công |
Các thao tác tương ứng của Local API dùng tiền tố /api ở những nơi đã tài liệu hóa. Xem Ma trận thử lại và hoàn tất endpoint để có hướng dẫn theo từng thao tác.
try:
submit_operation()
except TimeoutError:
# The write may already have succeeded.
current = query_current_state()
if current.is_terminal_success:
pass
elif current.is_pending:
poll_until_terminal()
else:
decide_whether_retry_is_safe(current)API công khai hiện chưa định nghĩa header khóa idempotency dùng chung. Vì vậy ID tài nguyên, ID tác vụ, truy vấn trạng thái và requestId là thiết yếu để khôi phục an toàn.