2017-10-09 7 views
-2

Ich möchte wissen, die Best Practice zu ftps Batch von neuen Dokumenten. Arbeiten an einem Dienst, der Stapel von Dokumenten und ftp es zu Remote-Server nimmt. Ich werde das Transaktionslog jedes Dokuments, das zu Berichterstattungszwecken angekommen ist, verwalten, zum Beispiel wie viele Dokumente an einem bestimmten Tag angekommen sind? Wie viele konnten aufgrund von fehlgeschlagenen FTP-Verbindungen nicht übertragen werden. Falls die App aus irgendeinem Grund fehlschlägt, sollte sie in der Lage sein, von dort aus zu arbeiten, wo sie geblieben ist.FTP Batch von Dokumenten

Die Möglichkeiten, die ich denken kann, ist unten:

  1. Legen Sie die Dokumente in der Datenbank als auch zusammen mit Transaktionsdetails für jedes Dokument, so dass bei der Wiederherstellung Scheitert es von dort links beginnen.

  2. Speichern Sie die Dokumente im lokalen Dateisystem und schreiben Sie einen FileWatcher in diesen Ordner auf ftp.

  3. Ftp die Dokumente, sobald es ankommt. In diesem Fall, wenn viele Dokumente ankommen, kann es OutOfMemoryError ergeben, denke ich.

was ist ein guter Ansatz in Bezug auf Fehlerkorrektur und nicht speicherintensiv?

+0

Dies ist eine sehr breite Frage, mit * vielen * Möglichkeiten, um es (einschließlich mehrerer Möglichkeiten, die nicht in Ihrer Liste von Vorschlägen enthalten) zu nähern. Leider ist diese Art von Frage für StackOverflow off-topic, da es nur Ihre Meinung und Diskussion bekommen wird. –

Antwort

-1

"Beste" ist ein ziemlich weit gefasster Begriff, und ich bin mir nicht sicher über Ihre Anwendungsanforderungen, aber auf den ersten Blick scheint dies eine gute Anwendung für Apache Camel. Camel kann in eine Java-Anwendung eingebettet oder als eigenständige Anwendung ausgeführt oder in Spring integriert oder auf einem Anwendungsserver ausgeführt werden. Sie können sein Verhalten unter anderem in Java-Code oder XML angeben.

Es ist trivial einfach (wenn Sie Camel kennen), eine Camel-Route zu schreiben, die ein bestimmtes Dateisystemverzeichnis nach Dateien mit einem bestimmten Muster überwacht und auf einen entfernten Rechner mit FTP oder FTPS (oder auf viele andere Arten) hochlädt. In einfachen Fällen werden nur ein oder zwei Zeilen Java oder XML benötigt, um dieses Verhalten zu spezifizieren. Sie können dem Code Protokollierung und Datenerfassung einfach hinzufügen.

Camel wird sehr häufig für Anwendungen dieser Art verwendet, und es scheint nicht mit einer großen Anzahl von Dateien zu kämpfen.

Ob natürlich, ist dies ein geeigneter Ansatz oder nicht hängt davon ab, wie gut Sie Camel kennen, oder ob Sie bereit sind, über Camel zu lernen. Ich bin mir sicher, dass es andere Ansätze gibt, die gleich gut sind.

+0

@ downvoter: Vorsicht warum? –

Verwandte Themen