Параллельная обработка

Обновлено: в прошлом квартале · 2 мин чтения

Устаревшее

Эта документация охватывает устаревший CLI (v0). Актуальная версия — CLI v1. Перейти к актуальной документации CLI

Команда run обрабатывает задачи перевода параллельно, распределяя их по пулу воркеров. Каждая комбинация локаль/файл становится отдельной задачей, и воркеры выполняют их одновременно.

Использование#

bash
# Default concurrency (10 workers)
npx lingo.dev@latest run

# Custom concurrency
npx lingo.dev@latest run --concurrency 20

Как это работает#

  1. Создание задач — CLI анализирует ваш i18n.json и создаёт отдельные задачи для каждой комбинации локаль/файл
  2. Распределение по воркерам — задачи назначаются доступным воркерам с помощью балансировки нагрузки
  3. Параллельная обработка — воркеры переводят одновременно, а блокировки файловой системы предотвращают конфликты записи
  4. Сбор результатов — готовые переводы безопасно записываются в целевые файлы

Параметры таргетинга#

Все параметры таргетинга из команды run работают и при параллельной обработке:

ПараметрОписание
--target-locale esОбрабатывать только указанные целевые языки
--source-locale enПереопределить исходную локаль
--bucket jsonОбрабатывать только указанные типы бакетов
--file components/headerОбрабатывать только указанные файлы (поддерживаются glob-шаблоны)
--key welcome.titleОбрабатывать только указанные ключи (поддерживаются glob-шаблоны)
--forceИгнорировать lockfile и заново перевести всё
--frozenЗавершиться с ошибкой, если какой-либо контент требует перевода
--concurrency 20Задать количество параллельных воркеров

Автоматическое кэширование#

При использовании API Lingo.dev большие файлы локалей разбиваются на части. Целевые файлы заполняются постепенно по мере получения каждой части из API. Если процесс прервётся, при следующем запуске он продолжится с того места, на котором остановился.

Для повторного перевода сначала используйте purge, затем run без --force. Так вы задействуете встроенный механизм кэширования и получите более эффективную обработку по сравнению с run --force.

Безопасность#

Пул воркеров защищает файлы от повреждения за счёт:

  • Синхронизации I/O — операции файловой системы выполняются последовательно для каждого файла
  • Защиты lockfile — атомарные операции предотвращают повреждение i18n.lock при одновременном доступе
  • Транзакционной обработки — каждая задача либо полностью завершается, либо завершается с чистой ошибкой

Следующие шаги#