Algumas operações do MoreLogin aceitam o trabalho antes de o navegador, Cloud Phone, arquivo, aplicativo ou execução de RPA subjacente atingir o estado final. Uma resposta de envio bem-sucedida significa que a requisição foi aceita; não significa sempre que o estado solicitado já foi alcançado.
| Estado | Significado | Ação do cliente |
|---|---|---|
| Enviado | A API aceitou o comando ou criou uma tarefa | Guarde os IDs retornados e o requestId; não reenvie a mesma escrita imediatamente |
| Pendente ou em execução | A operação posterior ainda está em andamento | Consulte o endpoint documentado de status/resultado com intervalos crescentes |
| Bem-sucedido | O recurso ou a tarefa alcançou seu estado terminal de êxito | Pare de consultar e continue o fluxo |
| Falhou | O endpoint de status/resultado informa falha ou um erro de negócio terminal | Pare as novas tentativas automáticas; guarde os IDs, os detalhes da falha e o requestId |
| Resultado desconhecido | A escrita expirou ou a conexão fechou sem uma resposta utilizável | Consulte o estado atual do recurso ou da tarefa antes de decidir repetir |
- Comece por cerca de 1 segundo e aumente o intervalo para 2, 4 e 8 segundos, com limite de 15–30 segundos.
- Aplique jitter para que clientes concorrentes não consultem no mesmo instante.
- Pare em um estado terminal documentado; não faça polling indefinidamente.
- Interprete
data: nullcomo pendente apenas quando o endpoint documentar esse comportamento explicitamente. - Um tempo limite de transporte em uma escrita não é prova de falha.
| Fluxo | Operação de envio | Operação de observação | Estado terminal |
|---|---|---|---|
| Início/parada do cloud browser | POST /cloudbrowser/start ou /cloudbrowser/stop | POST /cloudbrowser/page | O runtime alcança o estado pretendido ou desaparece após a parada |
| Ligar/desligar Cloud Phone | POST /cloudphone/powerOn ou /cloudphone/powerOff | POST /cloudphone/page | envStatus=4 ligado ou envStatus=2 desligado; 1 é falha de criação |
| Upload de arquivo no Cloud Phone | Envie para a URL assinada e depois POST /cloudphone/uploadFile | POST /cloudphone/uploadFileResult | status=1 êxito ou status=2 falha; data: null e status=0 são pendentes |
| Download do Cloud Phone | POST /cloudphone/download | POST /cloudphone/download/result | status=20 êxito, 30 falha ou 40 cancelado; 10 é em execução |
| Instalação de aplicativo | POST /cloudphone/app/install | POST /cloudphone/app/installedList | O pacote solicitado aparece na lista de aplicativos instalados |
| Agendamento/execução de RPA | POST /cloudphone/rpa/task/save ou /onceTask/save | POST /cloudphone/rpa/task/page, /subTask/page e /subTask/detail/{id} | taskState=2 concluído ou 3 cancelado; verifique handleResult (0 falha, 1 êxito) |
| Transmissão ao vivo | POST /cloudphone/live/start ou /live/end | POST /cloudphone/live/status | O status confirma que a transmissão começou ou parou |
| Upload para cloud storage | POST /cloudstorage/upload/init, seguido do PUT no object store | POST /cloudstorage/upload/complete depois que cada PUT necessário tiver êxito | A resposta de conclusão tem êxito; nunca chame complete antes de o upload do objeto ter êxito |
Os equivalentes da Local API usam o prefixo /api onde documentado. Veja a Matriz de novas tentativas e conclusão de endpoints para orientação operação por operação.
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)A API pública não define atualmente um cabeçalho geral de chave de idempotência. Por isso IDs de recurso, IDs de tarefa, consultas de estado e o requestId são essenciais para uma recuperação segura.