Erstellen von Quartz Jobs pro Aufgabe oder zusammenfassen

NicoDeluxe

NicoDeluxe

Top Contributor
Hallo ihr Lieben,

ich spamme grad ganz schön das Forum zu..Sorry falls es wen nervt :D Hilft mir aber grad ungemein, hab keinen Entwicklerkollegen den ich nerven kann 🥲

Folgende Situation:

Ein Import-Service importiert Daten:
- legt neue Datensätze an
- updated Attribut X eines Datensatzes
- updated Attribut Y eines Datensatzes
- updated Attribut Z eines Datensatzes

Wenn es zu einer Änderung kommt (x ist von Wert 0 auf 10 gestiegen zb) wird diese Änderung in eine History-Tabelle gespeichert. Kann man sich so vorstellen als hätte man eine Lagerverwaltung, eine Bestellung kommt rein, reduziert Audi A3 von Bestand 5 auf 4.

Nun kommt ein anderer Service, holt die Historien ab. Der Service hat nun eine Liste mit tausenden Änderungen (Preise der Autos haben sich verändert, Bestände der Autos haben sich verändert usw)

Diese Änderungen müssen nun an ein Programm geschickt werden, welches neue Fahrzeuge produziert (da ja der Audi A3 1 mal verkauft wurde zb).

Nun hab ich verschiedene Ansätze:

1. Ein Listener der hört "ah ein Bestand wurde geändert > holen > an die Produktion senden damit die ein neues Auto bauen"
2. Alle Historien erstmal sammeln, wenn der Import fertig ist triggerd der den Exporter an "hole alle Änderungen und sende diese an die Produktionsfabrik"
3. Alle Historien erstmal sammeln, wenn der Import fertig ist triggerd der den Exporter an "hole alle Änderungen und sende diese an die Produktionsfabrik" und erstellt für jeden Änderungseintrag einen Job, der in einen Scheduler kommt und dann nach und nach abgearbeitet wird.

1. fällt nahezu aus, da die "Fabrik-API" Limits hat. Zb nur 2 Calls pro Sekunde. Wenn da dann pro Änderun g drauf los gedonnert wird, gibts nur Error-Requests
2. ist die aktuelle Variante, es werden zb erst alle Bestandsänderungen geholt und nach und nach an die Fabrik geschickt, dannach werden die Preisänderungen geholt und an die Fabrik geschickt usw.
3. War jetzt so ein Einfall. Jeder Job ist dann erfolgreich oder auch nicht > das kann man vernünftig loggen, den Fehler beheben und ggf. den Job neu starten

Hat jemand so etwas in der Art schon mal gehabt oder Verbesserungsvorschläge/Input?
 
D

Dukel

Top Contributor
Eine History ist für mich etwas anderes. Darauf möchte ich nichts machen.

Wenn ein Prozess etwas macht dann soll sich dieser bei dem nächsten (neuen A3 herstellen) melden oder es meldet sich der Hersteller Prozess bei diesem und fragt nach offenen Aufgaben.

Man kann dies z.B. mittels eines Brokers machen.
Import Prozess schreibt in den Broker. Hersteller abonniert die Meldung, wenn Autos verkauft werden.
 
mihe7

mihe7

Top Contributor
@NicoDeluxe hört sich für mich nach einer Art Event Sourcing an. Wie auch immer: könntest Du die Dinge nicht einfach vollständig voneinander trennen? Auf der einen Seite wird bestellt. Die Bestellungen werden notiert. Auf der anderen Seite wird produziert. Hat die Produktion freie Kapazitäten, holt sie sich die nächsten Bestellungen ab.
 
NicoDeluxe

NicoDeluxe

Top Contributor
Die Ziel API kann nur Empfangen (sind unternehmensfremd). Problem ist, dass es pro 5 Minuten zu 50.000 Änderungen kommen kann die dann an die externe API gesendet werden. Die API erlaubt aber nur 2 Aufrufe pro Sek. Also muss erstmal alles irgendwo gesammelt werden und abgearbeitet werden.
Die Änderungen werden als Historie benutzt um zu sehen was sich wann geändert hat. Einen Broker hab ich auch schon im Einsatz gehabt, aber noch ein System mehr zu warten, wenn es eine Tabelle auch tut hmm
 
mihe7

mihe7

Top Contributor
Die Ziel API kann nur Empfangen (sind unternehmensfremd). Problem ist, dass es pro 5 Minuten zu 50.000 Änderungen kommen kann die dann an die externe API gesendet werden. Die API erlaubt aber nur 2 Aufrufe pro Sek. Also muss erstmal alles irgendwo gesammelt werden und abgearbeitet werden.
Dann entspricht in meinem Beispiel der "Exporter" der Produktion: der Exporter holt sich die Bestellungen ab (und schickt sie an die API), sobald er wieder Kapazitäten hat. Der Unterschied besteht hauptsächlich darin, dass hier nicht auf jedes Event reagiert wird/werden muss, sondern der Spaß von der anderen Seite (Exporter) aus "gesteuert" wird.
 
NicoDeluxe

NicoDeluxe

Top Contributor
Joa also so wie ich es jetzt habe (2. Alle Historien erstmal sammeln, wenn der Import fertig ist triggerd der den Exporter an "hole alle Änderungen und sende diese an die Produktionsfabrik")

Nur muss der Exporter irgendwie ne Info bekommen wann er loslegen soll. Das am Besten nach dem die Daten updated sind. Dann ist es ja wie es jetzt ist nicht falsch
 
NicoDeluxe

NicoDeluxe

Top Contributor
Achso meinst du, dass er nicht getriggered wird. Joa.

Man könnte auch einen "Bestandjob" erstellen welcher alle 5 Minuten schaut ob es Änderungen gibt und diese holt und weiter reicht. Das macht sich glaube sehr gut.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
R Geometry erstellen die abhängig von Variablen ist Allgemeine Java-Themen 6
Gaudimagspam Skip Liste erstellen in Java Allgemeine Java-Themen 3
Avalon DTO aus mehrere Entitäten erstellen Allgemeine Java-Themen 5
Kirby.exe Distanz Map für die Distanztransformation erstellen Allgemeine Java-Themen 1
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
B .txt Datei erstellen und auslesen bzw. schreiben Allgemeine Java-Themen 6
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
M Rectangle mit Java erstellen? Allgemeine Java-Themen 9
G Fläche erstellen mit Entfernungen Allgemeine Java-Themen 1
E Eigenen "Aufzählungstyp" erstellen - mit enum ? Allgemeine Java-Themen 18
T Multithreading: Wie viele Threads sollte ich erstellen? Allgemeine Java-Themen 12
B Rangliste erstellen Allgemeine Java-Themen 13
D 2,3-Baum rekursiv erstellen Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
L SQL Datei in Eclipse erstellen Allgemeine Java-Themen 3
J Datenstruktur für eine Map erstellen Allgemeine Java-Themen 2
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
E Erstellen einer Liste mit einer maximalen Menge an Elementen Allgemeine Java-Themen 13
E Ts3API Subchannel erstellen und rein moven !! Allgemeine Java-Themen 0
J Eigene Api erstellen und dann auch verwenden - Ordnerstruktur Allgemeine Java-Themen 1
S GetMethode erstellen mit Hilfe von Parametern Allgemeine Java-Themen 9
T 2D-Grafik Chart als Image erstellen Allgemeine Java-Themen 3
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
S Compiler-Fehler IntelliJ Projektdatei lässt sich nicht erstellen. Allgemeine Java-Themen 15
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
E Swing Buttons auf knopfdruck(anderer Button) erstellen Allgemeine Java-Themen 6
S TestNG Eclipse: Reporting erstellen/ verändern Allgemeine Java-Themen 0
F .jar erstellen und starten Allgemeine Java-Themen 15
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
N 1000 MQTT Messages die Sekunde - 1000 Threads erstellen ? Allgemeine Java-Themen 10
Tommy Nightmare Klassen Globale Klassen erstellen Allgemeine Java-Themen 7
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
S Maven Jars dynamisch laden / Plugin-Struktur erstellen Allgemeine Java-Themen 14
T 32-Bit Applikationen mit Eclipse erstellen Allgemeine Java-Themen 4
R Input/Output RTF erstellen? Allgemeine Java-Themen 2
G Liste zwischen zwei Kalenderdaten erstellen Allgemeine Java-Themen 3
S Klassen Klassen "virtuell" erstellen Allgemeine Java-Themen 5
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
M Dokument erstellen Allgemeine Java-Themen 0
S Java API für GitHub erstellen Allgemeine Java-Themen 14
T Ant Jar Datei per Ant in Eclipse erstellen Allgemeine Java-Themen 2
4a61766120617274697374 Hintergrundjobs(tasks) in Java erstellen Allgemeine Java-Themen 3
K Eigene API erstellen? Allgemeine Java-Themen 13
N Benutzeroberfläche erstellen Allgemeine Java-Themen 5
Thallius Eigenes Message Center erstellen Allgemeine Java-Themen 3
perlenfischer1984 Mehrere Komponenten erstellen Allgemeine Java-Themen 3
B jni - Headerdatei erstellen Allgemeine Java-Themen 3
N Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
I Methoden Schnelle Hilfe benötigt - Kleines Video/Slideshow aus mehreren Bildern erstellen Allgemeine Java-Themen 3
B automatisch benannte arrays erstellen Allgemeine Java-Themen 9
F URI-Scheme mit Java unter MacOS erstellen? Allgemeine Java-Themen 0
S Mit Generics Klasse erstellen die selbst T erweitert..? Allgemeine Java-Themen 4
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
M Textfile erstellen Allgemeine Java-Themen 11
L Wie kann ich einen Keystore aus existierenden Zertifikaten erstellen? Allgemeine Java-Themen 1
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
D Ordner auf Desktop erstellen(Pc unabhängig) Allgemeine Java-Themen 5
T Dll erstellen und einbinden Allgemeine Java-Themen 1
M Exceltabelle in Java erstellen und Werte einlesen Allgemeine Java-Themen 32
P Eigenstehende *.exe Datei erstellen Allgemeine Java-Themen 15
R Test Umgebung für Datenbank erstellen, was braucht es? Allgemeine Java-Themen 14
B MySQL Eintrag erstellen Allgemeine Java-Themen 3
Thallius PDF von einem BufferedImage erstellen Allgemeine Java-Themen 1
M Zwei unterschiedliche JAR Dateien mit ANT erstellen Allgemeine Java-Themen 8
3 Backup von h2-Datenbank-Datei erstellen Allgemeine Java-Themen 6
S ImageMap erstellen Allgemeine Java-Themen 1
A Spielemap erstellen Allgemeine Java-Themen 2
F URI Schema in Linux erstellen? Allgemeine Java-Themen 3
P Matrix erstellen Allgemeine Java-Themen 1
C Ein Array mit der Größe von 1 KB erstellen Allgemeine Java-Themen 3
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
GianaSisters Apache POI - Hyperlink erstellen Allgemeine Java-Themen 0
Zettelkasten Vektor mit Koordinaten erstellen Allgemeine Java-Themen 2
D Grafisches Frontend zu einem Java Prozess erstellen Allgemeine Java-Themen 0
U Screenshot erstellen und speichern Allgemeine Java-Themen 6
S Zur Laufzeit Klasse mit einer anzahl von X Objekten erstellen Allgemeine Java-Themen 5
NicoDeluxe Programminstallation erstellen Allgemeine Java-Themen 3
K RamDisk erstellen Allgemeine Java-Themen 13
J Java Programm - ausführbare Jar Datei erstellen Allgemeine Java-Themen 2
K Methode soll neue Buttons erstellen Allgemeine Java-Themen 5
Joew0815 Best Practice Wie am besten Plugin-System erstellen? Allgemeine Java-Themen 12
U "Optionale JAR's" erstellen Allgemeine Java-Themen 4
S Gruppenkalender erstellen Allgemeine Java-Themen 3
M JAR Datei erstellen funktioniert nicht Allgemeine Java-Themen 5
D Nutzen, erst deklarieren, oder neu erstellen? Allgemeine Java-Themen 11
K Zipdateien: Erstellen, Interne änderungen, TrueZip Allgemeine Java-Themen 2
A Tabelle mit iText erstellen Allgemeine Java-Themen 3
K Zip-Archive mit temporären Files erstellen Allgemeine Java-Themen 16
D Fragen zum erstellen einer ausführbaren Jar Datei Allgemeine Java-Themen 3
F Dynamisch ein Objekt einer bestimmten Subklasse erstellen Allgemeine Java-Themen 7
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
K Mehrere Arrays auf einmal erstellen Allgemeine Java-Themen 2
E Eigene Exception Klasse erstellen Allgemeine Java-Themen 3
C Laufwerk erstellen Allgemeine Java-Themen 17
GUI-Programmer JNI - Problem beim Erstellen der .dll Allgemeine Java-Themen 9

Ähnliche Java Themen


Oben