Execuções, estado e recuperação

Max PrilutskiyCEO e cofundador2 min de leitura

lingo push envia uma execução para o engine e encerra — ou, com --wait, espera a execução terminar e grava as saídas. De todo modo, a execução fica no servidor, não no seu terminal — então você pode fechar o terminal e ainda recuperar os resultados depois, a partir do mesmo checkout. Esta página explica como isso funciona e como retomar quando uma execução falha.

Estado da execução#

Cada push registra a execução enviada em um arquivo específico da máquina:

text
~/.lingo/runs/<hash>.json

O <hash> é gerado a partir do caminho absoluto do projeto, então cada checkout tem sua própria entrada. O arquivo guarda o ID da execução, o engine e a organização — o suficiente para que um lingo pull posterior encontre as saídas.

É um estado da máquina, não do projeto — fica no seu diretório home, nunca no repositório, e não é versionado.

Recuperar depois#

Como a execução fica no servidor, você pode enviar, seguir com outras tarefas e recuperar quando ela terminar:

bash
lingo push

# later — same machine, same checkout
lingo pull

pull busca as saídas da execução mais recente deste projeto. Ele também verifica o lockfile em busca de edições locais e se recusa a sobrescrevê-las, a menos que você passe --force. Veja lingo pull.

O estado da execução nunca sai da máquina, então outra máquina ou um executor de CI não pode pull uma execução enviada de outro lugar — a operação falha com No saved run state for this project ou recupera o último envio daquela própria máquina. Para trazer para a sua máquina as traduções feitas no CI, faça commit delas no CI e git pull. Veja CI/CD.

Movendo o projeto

O nome do arquivo de estado da execução é definido com base no caminho absoluto do projeto. Se você mover o diretório entre o push e o pull, a busca não vai encontrá-lo — o ID da execução ainda estará em ~/.lingo/runs/ caso você precise recuperá-lo manualmente.

Recuperando uma execução com falha#

Se uma execução falhar no meio do processo — por timeout ou por um erro transitório do engine — use:

bash
lingo resume

resume reaproveita as saídas a partir dos resultados em cache do engine, em vez de traduzir tudo de novo, então uma execução recuperada não gasta créditos novamente. Ele informa o que foi recuperado e o que não pôde ser vinculado de volta.

Se resume informar destinos que não conseguiu recuperar, preencha as lacunas com um backfill normal:

bash
lingo push --backfill-missing

Quando usar cada opção#

SituaçãoComando
Coletar os resultados depois de fechar o terminallingo pull
Traduzir no CI e fazer commit dos resultadoslingo push --wait e depois fazer commit
Uma execução falhou no meio do caminholingo resume
A retomada deixou lacunaslingo push --backfill-missing