Processamento Paralelo

Max PrilutskiyCEO e cofundadorAtualizado em: há 3 meses · 2 min de leitura

Descontinuado

Esta documentação abrange a CLI antiga (v0). A versão atual da CLI é a v1. Ver a documentação atual da CLI

O comando run processa tarefas de tradução em simultâneo, distribuindo-as por um conjunto de workers. Cada combinação de idioma/ficheiro torna-se uma tarefa independente, e os workers tratam-nas em paralelo.

consumo#

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

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

Como funciona#

  1. Criação de tarefas — a CLI analisa o seu i18n.json e cria tarefas individuais para cada combinação de idioma/ficheiro
  2. Distribuição pelos workers — as tarefas são atribuídas aos workers disponíveis com balanceamento de carga
  3. Processamento em simultâneo — os workers traduzem em paralelo, enquanto os bloqueios do sistema de ficheiros evitam conflitos de escrita
  4. Agregação de resultados — as traduções concluídas são escritas com segurança nos ficheiros de destino

Opções de segmentação#

Todas as opções de segmentação do comando run funcionam com o processamento paralelo:

OpçãoDescrição
--target-locale esProcessar idiomas de destino específicos
--source-locale enSubstituir o idioma de origem
--bucket jsonProcessar tipos de bucket específicos
--file components/headerProcessar ficheiros específicos (suporta padrões glob)
--key welcome.titleProcessar chaves específicas (suporta padrões glob)
--forceIgnorar o ficheiro de bloqueio e retraduzir tudo
--frozenFalhar se existir conteúdo por traduzir
--concurrency 20Definir o número de workers em simultâneo

Cache automática#

Ao utilizar a API do Lingo.dev, ficheiros de idioma de grande dimensão são divididos em blocos. Os ficheiros de destino são preenchidos de forma incremental à medida que cada bloco regressa da API. Se o processo for interrompido, a execução seguinte retoma a partir do ponto onde ficou.

Para retraduzir, utilize primeiro purge e depois run sem --force. Isto tira partido do mecanismo de cache integrado para um processamento mais eficiente do que run --force.

Segurança#

O conjunto de workers evita a corrupção de ficheiros através de:

  • Sincronização de I/O — as operações do sistema de ficheiros são serializadas por ficheiro
  • Proteção do ficheiro de bloqueio — operações atómicas evitam a corrupção simultânea de i18n.lock
  • Processamento transacional — cada tarefa é concluída na totalidade ou falha de forma controlada

Próximos passos#