Kontext: Ich lese eine Excel-Datei in einem bestimmten Format mit Apache POI-Bibliothek. Jede Datei hat nur ein Blatt und eine bestimmte Vorlage. Ich kann das Blatt lesen, einige Änderungen an den Werten vornehmen, sie als POJO speichern und dann mithilfe einer JAXB-Implementierung in XML umwandeln.Java - POI - Leistung
Problem: Ich lese nur ein paar Excel-Dateien (sagen 100) für jetzt, aber ich wollte meine Anwendung so gestalten, dass es skalierbar ist genug, um rund 1000 bis 10000 Dateien zu lesen. Können Sie eine gute Architektur für das gleiche vorschlagen. Sollte ich Multithreading (etwa einen Threadpool mit 10 Threads) verwenden, um 10 Blätter gleichzeitig zu lesen, oder wäre das ein schlechter Entwurf, wenn man bedenkt, dass jedes Blatt getrennte Daten hat, die nicht mit einem anderen Blatt verknüpft sind.
Hinweis: Ich kann die Code-Snippets nicht teilen, da dies proprietärer Code ist, obwohl wir annehmen können, dass jedes Blatt 50 Zeilen und jede Zeile 6 bis 10 Spalten mit reinen Textdaten hat die Zellen. Da die Datei klein ist, lade ich die gesamte Datei in den Speicher und bearbeite sie dann. Außerdem verwende ich Apache Poi-Code, um durch die Reihen und Spalten zu iterieren (Probe unten).
P.S. Dies ist meine erste Frage zu SO, also zögern Sie nicht, Änderungen/Verbesserungen in meiner Frage vorzuschlagen.
Danke und Grüße, Sid
Nun müssten wir wissen, wie genau Sie die Daten lesen. Sie könnten den Code ändern, um zu simulieren, wie Sie die Daten lesen (sollte kein Problem mit dem proprietären Ding sein) – XtremeBaumer
Da sie nicht miteinander verknüpft sind, ist es sehr gut für die parallele Verarbeitung geeignet. –
@XtremeBaumer Habe ein Snippet hinzugefügt. Bitte sehen Sie, ob es hilft. – phoenixSid