Execuções, estado e recuperação

Max PrilutskiyCEO e cofundador2 min de leitura

lingo push envia uma execução para o motor e termina — ou, com --wait, espera por ela e escreve os resultados. Em qualquer dos casos, a execução fica no servidor, não no seu terminal — por isso, pode fechar o terminal e ainda assim ir buscar os resultados mais tarde, a partir do mesmo checkout. Esta página explica como isso funciona e como recuperar quando uma execução falha.

Estado da execução#

Cada push regista a execução que submeteu num ficheiro específico de cada máquina:

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

O <hash> é gerado a partir do caminho absoluto do projeto, por isso cada checkout tem a sua própria entrada. O ficheiro guarda o ID da execução, o motor e a organização — informação suficiente para que um lingo pull posterior encontre os resultados.

Trata-se de estado da máquina, não do projeto — fica na sua diretoria pessoal, nunca no repositório, e não é versionado.

Ir buscar mais tarde#

Como a execução fica no servidor, pode fazer push, seguir com o seu trabalho e fazer pull quando estiver concluída:

bash
lingo push

# later — same machine, same checkout
lingo pull

pull vai buscar os resultados da execução mais recente deste projeto. Também verifica o lockfile para detetar edições locais e recusa sobrescrevê-las, a menos que passe --force. Veja lingo pull.

O estado da execução nunca sai da máquina, por isso outra máquina ou um executor de CI não consegue pull uma execução enviada por push noutro local — falha com No saved run state for this project ou faz pull do último push dessa máquina. Para trazer para a sua máquina as traduções feitas em CI, faça commit dessas traduções em CI e git pull. Consulte CI/CD.

Mover o projeto

O nome do ficheiro de estado da execução é determinado pelo caminho absoluto do projeto. Se mover a diretoria entre o push e o pull, a procura falha — o ID da execução continua em ~/.lingo/runs/, caso precise de o recuperar manualmente.

Recuperar uma execução com falhas#

Se uma execução falhar a meio — por exemplo, por timeout ou por um erro transitório do motor — use:

bash
lingo resume

resume volta a emitir os resultados a partir dos resultados em cache do motor, em vez de voltar a traduzir, por isso uma execução recuperada não volta a gastar créditos. Indica o que conseguiu recuperar e o que não foi possível voltar a associar.

Se resume indicar destinos que não conseguiu recuperar, preencha-os com um backfill normal:

bash
lingo push --backfill-missing

Quando usar cada comando#

SituaçãoComando
Ir buscar os resultados depois de fechar o terminallingo pull
Traduzir em CI e fazer commit dos resultadoslingo push --wait e depois fazer commit
Uma execução falhou a meiolingo resume
A retoma deixou lacunaslingo push --backfill-missing