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
Bestimmte Sprachen verarbeiten:
npx lingo.dev@latest run --locale es --locale fr
Bestimmte Dateitypen verarbeiten:
npx lingo.dev@latest run --bucket json
Bestimmte Dateien verarbeiten:
npx lingo.dev@latest run --file components/header
Bestimmte Schlüssel verarbeiten:
npx lingo.dev@latest run --key welcome.title
Neuübersetzung erzwingen:
npx lingo.dev@latest run --force
Diese Zieloptionen funktionieren identisch zum Befehl i18n
, verarbeiten die 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 Befehl run
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 Targeting-Optionen — Flags
--locale
,--bucket
,--key
,--file
,--force
funktionieren identisch
Migration vom Befehl i18n
:
# Aktueller Befehl
npx lingo.dev@latest i18n
# Paralleles Äquivalent
npx lingo.dev@latest run
Alle Funktionalitäten werden direkt mit deutlich verbesserter Leistung übertragen.
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.