Запуски, состояние и восстановление
lingo push отправляет запуск в движок и завершает работу — или, с --wait, ждёт результата и записывает выходные данные. В любом случае запуск живёт на сервере, а не в терминале — можно закрыть терминал и забрать результаты позже из того же чекаута. На этой странице объясняется, как это работает и что делать, если запуск завершился с ошибкой.
Состояние запуска#
Каждый push сохраняет отправленный запуск в отдельный файл состояния для этой машины:
~/.lingo/runs/<hash>.json<hash> формируется на основе абсолютного пути к проекту, поэтому у каждой рабочей копии своя запись. В файле хранятся ID запуска, движок и организация — этого достаточно, чтобы позже lingo pull смог найти результаты.
Это состояние машины, а не проекта — оно хранится в домашнем каталоге, не попадает в репозиторий и не коммитится.
Получить результаты позже#
Запуск выполняется на сервере, поэтому можно отправить задачу, закрыть терминал и забрать результаты, когда всё будет готово:
lingo push
# later — same machine, same checkout
lingo pullpull получает результаты последнего запуска для этого проекта. Он также проверяет 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/, если понадобится восстановить его вручную.
Восстановление неудачного запуска#
Если запуск завершился ошибкой на полпути — например, из-за тайм-аута или временной ошибки движка, — используйте:
lingo resumeresume заново выдаёт результаты из кэша движка вместо повторного перевода, поэтому восстановленный запуск не расходует кредиты повторно. Команда покажет, что удалось восстановить, а что не получилось сопоставить.
Если resume сообщает о целях, которые не удалось восстановить, заполните их обычным backfill:
lingo push --backfill-missingЧто использовать и когда#
| Ситуация | Команда |
|---|---|
| Получить результаты после закрытия терминала | lingo pull |
| Переводить в CI и фиксировать результаты | lingo push --wait, затем зафиксировать |
| Запуск прервался на полпути | lingo resume |
| После возобновления остались пропуски | lingo push --backfill-missing |