2017-07-06 2 views
0

Ich habe eine eckige App, die eine REST-API zum Einfügen von Daten in MySQL DB aufruft.Angular HTTP Request Wiederholung verursacht mehrere einfügen

Die Logik ist, wenn die App innerhalb von 10 Sekunden keine Antwort erhält, es wiederholt die gleiche Anfrage.

Auf dem Server werden einige Logik angewendet, um einige Werte zu berechnen, die zum Einfügen der Daten erforderlich sind. Wenn also die Anzahl der vom Client übergebenen Datensätze überschritten wird, kann die Anforderung nicht innerhalb von 10 Sekunden abgeschlossen werden. Der Client bricht die Anfrage ab und versucht sie erneut. Dies führt dazu, dass mehrere Datensätze eingefügt werden.

Kann jemand eine bewährte Lösung für das gleiche vorschlagen?

Vielen Dank im Voraus.

+0

Nun, nicht erneut versuchen. Was ist der Sinn der Wiederholung, wenn Sie keinen Fehler bekommen? Das wird nur Duplikate verursachen und noch mehr Druck auf einen bereits überforderten Server ausüben. –

+0

Ich habe geplant, eine eindeutige Anfrage-ID für jede Anfrage an die API zu stempeln und am Ende der API zu prüfen, ob die Anfrage bereits bearbeitet wurde. Wenn ja, senden Sie eine Fehlermeldung, die besagt, dass doppelte Anfrage erhalten wird. Ist das eine gute Lösung? –

Antwort

0

Führen Sie nur einen Wiederholungsversuch bei einem Fehler durch, andernfalls erhalten Sie doppelte Antworten. Sie erhalten keinen Fehler (der Ihnen schließlich eine Antwort gibt).