Paralelní zpracování

Aktualizováno: minulé čtvrtletí · 2 min čtení

Zastaralé

Tato dokumentace pokrývá starší CLI (v0). Aktuální CLI je v1. Zobrazit aktuální dokumentaci CLI

Příkaz run zpracovává překladové úlohy souběžně tím, že je rozděluje mezi pool workerů. Každá kombinace jazyk/soubor je samostatná úloha a workeři je zpracovávají paralelně.

Použití#

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

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

Jak to funguje#

  1. Vytváření úloh — CLI analyzuje váš soubor i18n.json a vytváří samostatné úlohy pro každou kombinaci jazyk/soubor
  2. Rozdělení mezi workery — úlohy se pomocí vyvažování zátěže přiřazují dostupným workerům
  3. Souběžné zpracování — workeři překládají paralelně, zatímco zámky souborového systému zabraňují konfliktům při zápisu
  4. Shromáždění výsledků — dokončené překlady se bezpečně zapisují do cílových souborů

Možnosti cílení#

S paralelním zpracováním fungují všechny možnosti cílení z příkazu run:

MožnostPopis
--target-locale esZpracovat konkrétní cílové jazyky
--source-locale enPřepsat zdrojový jazyk
--bucket jsonZpracovat konkrétní typy bucketů
--file components/headerZpracovat konkrétní soubory (podporuje glob vzory)
--key welcome.titleZpracovat konkrétní klíče (podporuje glob vzory)
--forceObejít lockfile a přeložit vše znovu
--frozenSelhat, pokud některý obsah vyžaduje překlad
--concurrency 20Nastavit počet souběžných workerů

Automatické ukládání do mezipaměti#

Při použití Lingo.dev API se velké jazykové soubory rozdělují na části. Cílové soubory se postupně doplňují podle toho, jak se jednotlivé části vracejí z API. Pokud se proces přeruší, při dalším spuštění naváže tam, kde skončil.

Pro opětovný překlad nejprve použijte purge a potom run bez --force. Využijete tak vestavěný mechanismus ukládání do mezipaměti, který je při zpracování efektivnější než run --force.

Bezpečnost#

Pool workerů předchází poškození souborů díky:

  • Synchronizace I/O — operace se souborovým systémem se pro každý soubor provádějí sériově
  • Ochrana lockfilem — atomické operace zabraňují poškození i18n.lock při souběžném přístupu
  • Transakční zpracování — každá úloha se buď dokončí celá, nebo čistě selže

Další kroky#