Běhy, stav a obnova

Max PrilutskiyCEO a spoluzakladatel2 min čtení

lingo push odešle spuštění do engine a ukončí se — nebo s --wait počká na jeho dokončení a zapíše výstupy. V obou případech spuštění běží na serveru, ne ve vašem terminálu — takže terminál můžete zavřít a výsledky si vyzvednout později ze stejného checkoutu. Tato stránka vysvětluje, jak to funguje a jak postupovat, když spuštění selže.

Stav běhu#

Každý push zaznamená odeslaný běh do souboru pro daný počítač:

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

<hash> se odvozuje z absolutní cesty k projektu, takže každý checkout má vlastní záznam. Soubor obsahuje ID běhu, engine a organizaci — tedy vše, co pozdější lingo pull potřebuje k nalezení výstupů.

Jde o stav vázaný na konkrétní počítač, ne o stav projektu — je uložený ve vašem domovském adresáři, nikdy ne v repozitáři, a necommituje se.

Vyzvednutí později#

Protože spuštění běží na serveru, můžete ho odeslat, odejít a vyzvednout si ho, až bude hotové:

bash
lingo push

# later — same machine, same checkout
lingo pull

pull stáhne výstupy z nejnovějšího běhu pro tento projekt. Zároveň zkontroluje lockfile, jestli neobsahuje místní úpravy, a bez --force je odmítne přepsat. Viz lingo pull.

Stav spuštění nikdy neopustí daný počítač, takže jiný počítač nebo CI runner nemůže pull spuštění odeslané odjinud — skončí chybou No saved run state for this project, nebo stáhne poslední odeslání z daného počítače. Pokud chcete dostat překlady vytvořené v CI do svého počítače, potvrďte je v CI a git pull. Viz CI/CD.

Přesun projektu

Název souboru se stavem běhu je navázaný na absolutní cestu k projektu. Pokud adresář mezi push a pull přesunete, vyhledání selže — ID běhu ale stále najdete v ~/.lingo/runs/, pokud ho budete potřebovat dohledat ručně.

Obnova neúspěšného běhu#

Pokud běh skončí chybou v průběhu — například kvůli timeoutu nebo přechodné chybě engine — použijte:

bash
lingo resume

resume znovu vygeneruje výstupy z výsledků uložených v cache engine místo toho, aby znovu překládal, takže obnovený běh už znovu nespotřebuje kredity. Ohlásí, co se podařilo obnovit a co se nepodařilo zpětně propojit.

Pokud resume nahlásí cíle, které se nepodařilo obnovit, doplňte je běžným backfillem:

bash
lingo push --backfill-missing

Kdy použít co#

SituacePříkaz
Vyzvednutí výsledků po zavření terminálulingo pull
Překládejte v CI a potvrďte výsledkylingo push --wait, pak potvrdit
Běh selhal v průběhulingo resume
Po obnovení zůstaly mezerylingo push --backfill-missing