実行、状態、復旧
lingo push は実行をエンジンに送信して終了します。--wait を使うと、完了まで待って出力を書き込みます。どちらの場合も、実行はターミナル内ではなくサーバー上に残るため、ターミナルを閉じても、あとから同じチェックアウトで結果を取得できます。このページでは、その仕組みと、実行が失敗したときの復旧方法を説明します。
実行状態#
push を実行するたびに、送信した実行がマシンごとのファイルに記録されます。
~/.lingo/runs/<hash>.json<hash> は絶対プロジェクトパスをもとに生成されるため、チェックアウトごとに個別のエントリが作成されます。このファイルには実行 ID、エンジン、org が保存され、あとから lingo pull で出力を見つけるのに十分な情報が含まれます。
これはプロジェクト状態ではなく、マシンごとの状態です。保存先はホームディレクトリで、リポジトリ内には置かれず、コミットもされません。
あとから取得する#
実行はサーバー側にあるため、送信してその場を離れても、完了後に取得できます。
lingo push
# later — same machine, same checkout
lingo pullpull はこのプロジェクトの最新の実行結果を取得します。また、lockfile を確認してローカルの編集がないかをチェックし、--force を指定しない限り、それらを上書きしません。詳しくは lingo pull を参照してください。
実行状態はそのマシンから外に出ないため、別のマシンやシーアイランナーは、ほかの場所で送信された実行を pull できません。No saved run state for this project で失敗するか、そのマシン自身の直前の送信を取得します。シーアイで作成した翻訳を自分のマシンに反映するには、シーアイでそれらをコミットしてから git pull してください。CI/CD を参照してください。
プロジェクトを移動した場合
実行状態ファイルのファイル名は、絶対プロジェクトパスをキーにしています。push と pull の間でディレクトリを移動すると、参照に失敗します。その場合でも、手動で復旧する必要があれば、実行 ID は ~/.lingo/runs/ に残っています。
失敗した実行を復旧する#
実行が途中でエラーになった場合 — タイムアウトや一時的なエンジンエラーなど — 次を使用します。
lingo resumeresume は再翻訳する代わりに、エンジンにキャッシュされた結果から出力を再生成します。つまり、復旧した実行でクレジットが再度消費されることはありません。あわせて、復旧できたものと、再び関連付けできなかったものも報告されます。
resume が復旧できなかったターゲットを報告した場合は、通常のバックフィルで補完してください。
lingo push --backfill-missing状況別の使い分け#
| 状況 | コマンド |
|---|---|
| ターミナルを閉じたあとで結果を取得する | lingo pull |
| シーアイで翻訳して結果をコミットする | lingo push --wait してからコミット |
| 実行が途中で失敗した | lingo resume |
| 再開後に抜けが残った | lingo push --backfill-missing |