Hallo ihr Lieben,
ich spamme grad ganz schön das Forum zu..Sorry falls es wen nervt 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?
ich spamme grad ganz schön das Forum zu..Sorry falls es wen nervt 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?