병렬 처리

업데이트일: 지난 분기 · 1분 소요

지원 중단

이 문서는 레거시 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 패턴 지원)
--forcelockfile을 무시하고 전체를 다시 번역
--frozen번역이 필요한 콘텐츠가 하나라도 있으면 실패 처리
--concurrency 20동시 실행할 워커 수 설정

자동 캐싱#

Lingo.dev API를 사용할 때 큰 로캘 파일은 여러 청크로 나뉩니다. 각 청크가 API에서 반환될 때마다 대상 파일이 순차적으로 채워집니다. 프로세스가 중단되더라도 다음 실행에서 중단된 지점부터 이어서 시작합니다.

다시 번역하려면 먼저 purge를 실행한 뒤, --force 없이 run를 사용하세요. 이렇게 하면 run --force보다 더 효율적으로 내장 캐싱 메커니즘을 활용할 수 있습니다.

안전성#

워커 풀은 다음과 같은 방식으로 파일 손상을 방지합니다:

  • I/O 동기화 - 파일 시스템 작업은 파일별로 직렬화됩니다
  • Lockfile 보호 - 원자적 작업으로 i18n.lock의 동시 손상을 방지합니다
  • 트랜잭션 처리 - 각 작업은 완전히 성공하거나 깔끔하게 실패합니다

다음 단계#