Parallele Verarbeitung
Lingo.dev CLI bietet parallele Verarbeitung durch den Befehl run
, der mehrere Lokalisierungsaufgaben gleichzeitig verarbeitet, um die Übersetzungszeit für große Projekte drastisch zu reduzieren.
Der Befehl run
wird in zukünftigen Versionen schrittweise den Befehl i18n
ersetzen und bietet die gleiche Funktionalität mit erheblichen Leistungsverbesserungen durch gleichzeitige Verarbeitung.
Grundlegende Verwendung
Alle Übersetzungen mit paralleler Verarbeitung ausführen:
npx lingo.dev@latest run
Grad der Parallelität steuern:
npx lingo.dev@latest run --concurrency 20
Der Befehl run
verwendet dieselben Konfigurationsdateien i18n.json
und i18n.lock
wie der Standard-Befehl i18n
.
Funktionsweise der parallelen Verarbeitung
Lingo.dev CLI verteilt Lokalisierungsaufgaben auf mehrere gleichzeitige Worker und verarbeitet verschiedene Sprachpaare und Dateimuster simultan.
Architekturübersicht:
- Aufgabenerstellung — Die CLI analysiert Ihre Konfiguration und erstellt einzelne Aufgaben für jede Locale/Datei-Kombination
- Worker-Verteilung — Aufgaben werden auf mehrere Worker-Prozesse verteilt
- Gleichzeitige Verarbeitung — Worker verarbeiten Übersetzungen simultan und verhindern dabei Dateikonflikte
- Ergebnisaggregation — Abgeschlossene Übersetzungen werden sicher in Zieldateien geschrieben
Steuerung der Parallelität
Worker-Anzahl festlegen:
npx lingo.dev@latest run --concurrency 15
Standardmäßige Parallelität beträgt 10 Worker. Höhere Werte verarbeiten Übersetzungen schneller, verbrauchen aber mehr Systemressourcen und können API-Ratenlimits erreichen.
Optimale Parallelität hängt von den Systemkapazitäten und den Limits des Übersetzungsanbieters ab. Beginnen Sie mit dem Standardwert und passen Sie ihn basierend auf der Leistung an.
Gezielte Verarbeitung
Spezifische Sprachen verarbeiten:
npx lingo.dev@latest run --target-locale es --target-locale fr
Spezifische Dateitypen verarbeiten:
npx lingo.dev@latest run --bucket json
Spezifische Dateien verarbeiten:
npx lingo.dev@latest run --file components/header
Spezifische Schlüssel verarbeiten:
npx lingo.dev@latest run --key welcome.title
Akzeptiert Glob-Muster wie von der minimatch-Bibliothek definiert.
Neuübersetzung erzwingen:
npx lingo.dev@latest run --force
Diese Zieloptionen funktionieren identisch zum Befehl i18n
, verarbeiten Aufgaben jedoch parallel.
Verhinderung von Race Conditions
Lingo.dev CLI verhindert Dateibeschädigungen während der parallelen Verarbeitung durch mehrere Schutzmaßnahmen:
I/O-Synchronisation — Dateisystemoperationen werden synchronisiert, um zu verhindern, dass mehrere Worker gleichzeitig in dieselbe Datei schreiben.
Lockfile-Schutz — Die Datei i18n.lock
verwendet atomare Operationen, um Beschädigungen während gleichzeitiger Aktualisierungen zu verhindern.
Transaktionsverarbeitung — Jede Aufgabe wird vollständig abgeschlossen oder sauber beendet, um konsistente Dateizustände zu gewährleisten.
Leistungsoptimierung
Überwachen Sie die Systemressourcen bei Verwendung hoher Parallelitätswerte. Die CLI ist auf Effizienz ausgelegt, aber sehr große Projekte können von einer Ressourcenüberwachung profitieren.
Beginnen Sie mit den Standardeinstellungen:
npx lingo.dev@latest run
# Verwendet optimierte Parallelitätseinstellungen
Skalieren Sie schrittweise nach oben:
npx lingo.dev@latest run --concurrency 20
# Erhöhen Sie den Wert, wenn das System die Last gut bewältigt
Zielen Sie auf spezifische Inhalte für Iterationen:
npx lingo.dev@latest run --file src/components
# Verarbeitet nur geänderte Komponenten
Kompatibilität
Der run
-Befehl behält die volle Kompatibilität mit bestehenden Konfigurationen bei:
- Gleiches
i18n.json
-Format — Keine Konfigurationsänderungen erforderlich - Gleiches
i18n.lock
-Verhalten — Inkrementelle Übersetzungsverfolgung funktioniert identisch - Gleiche Dateiformate — Alle Bucket-Typen werden unterstützt
- Gleiche Zieloptionen —
--bucket
,--key
,--file
,--force
Flags funktionieren identisch - Spezifizierung von Locales mit Optionen:
--target-locale
zum Überschreiben vonlocale.targets
aus deri18n.json
-Konfiguration (Hinweis: Ersetzt die--locale
-Option für deni18n
-Befehl.)--source-locale
zum Überschreiben vonlocale.source
aus deri18n.json
-Konfiguration
Migration vom i18n
-Befehl:
# Aktueller Befehl
npx lingo.dev@latest i18n
# Paralleles Äquivalent
npx lingo.dev@latest run
Alle Funktionalitäten werden direkt übertragen mit deutlich verbesserter Leistung.
Die --locale
-Option wird durch die separaten Optionen --target-locale
und --source-locale
ersetzt.
Worker-Pool-Architektur
Lingo.dev CLI verwendet ein ausgeklügeltes Worker-Pool-System:
Dynamische Zuweisung — Worker werden basierend auf Systemressourcen und Parallelitätseinstellungen erstellt.
Aufgabenverteilung — Aufgaben werden gleichmäßig auf Worker verteilt, unter Verwendung optimierter Algorithmen.
Fortschrittsverfolgung — Echtzeit-Fortschrittsüberwachung über alle parallelen Operationen.
Ressourcenverwaltung — Automatische Bereinigung und Ressourcenfreigabe nach Abschluss der Verarbeitung.