Запуски, состояние и восстановление

Max PrilutskiyГенеральный директор и соучредитель2 мин чтения

lingo push отправляет запуск в движок и завершает работу — или, с --wait, ждёт результата и записывает выходные данные. В любом случае запуск живёт на сервере, а не в терминале — можно закрыть терминал и забрать результаты позже из того же чекаута. На этой странице объясняется, как это работает и что делать, если запуск завершился с ошибкой.

Состояние запуска#

Каждый push сохраняет отправленный запуск в отдельный файл состояния для этой машины:

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

<hash> формируется на основе абсолютного пути к проекту, поэтому у каждой рабочей копии своя запись. В файле хранятся ID запуска, движок и организация — этого достаточно, чтобы позже lingo pull смог найти результаты.

Это состояние машины, а не проекта — оно хранится в домашнем каталоге, не попадает в репозиторий и не коммитится.

Получить результаты позже#

Запуск выполняется на сервере, поэтому можно отправить задачу, закрыть терминал и забрать результаты, когда всё будет готово:

bash
lingo push

# later — same machine, same checkout
lingo pull

pull получает результаты последнего запуска для этого проекта. Он также проверяет lockfile на локальные изменения и не перезаписывает их, если только вы не передадите --force. Подробнее см. в lingo pull.

Состояние запуска не покидает машину, поэтому другая машина или CI-runner не сможет выполнить pull для запуска, отправленного с другой машины, — произойдёт ошибка No saved run state for this project либо будет получен последний запуск этой машины. Чтобы перенести переводы из CI на свою машину, зафиксируйте их в CI и выполните git pull. См. CI/CD.

Перенос проекта

Имя файла состояния запуска привязано к абсолютному пути к проекту. Если переместить каталог между push и pull, поиск не сработает — но ID запуска по-прежнему будет в ~/.lingo/runs/, если понадобится восстановить его вручную.

Восстановление неудачного запуска#

Если запуск завершился ошибкой на полпути — например, из-за тайм-аута или временной ошибки движка, — используйте:

bash
lingo resume

resume заново выдаёт результаты из кэша движка вместо повторного перевода, поэтому восстановленный запуск не расходует кредиты повторно. Команда покажет, что удалось восстановить, а что не получилось сопоставить.

Если resume сообщает о целях, которые не удалось восстановить, заполните их обычным backfill:

bash
lingo push --backfill-missing

Что использовать и когда#

СитуацияКоманда
Получить результаты после закрытия терминалаlingo pull
Переводить в CI и фиксировать результатыlingo push --wait, затем зафиксировать
Запуск прервался на полпутиlingo resume
После возобновления остались пропускиlingo push --backfill-missing