Neues Thema starten

MWS OrderSearch Step API Limitierung und Throttling - gibt es einen Trick?

 Hallo,

vielen Dank für das zusätzliche Prime Feld! Ich wollte den Flow heute nun live schalten. Außerhalb der Sandbox laufe ich allerdings ständig ins API Limit, selbst wenn ich nur die unverschickten Aufträge der letzten paar Stunden abrufe.


ERROR:Webservice Error: Request is throttled(requestId: 957b4d6f-0674-418b-a657-5580185467a3responseContext: [MHM1wM1P4upAMpPeq9/F9wUbhWoB2wchGxwv2qNMbMjKWg/YJRLFfTuO1dFICkZN14KEDs7YFHg=]timestamp: 2018-12-06T16:55:19.467ZquotaMax: nullquotaRemaining: nullquotaResetsAt: null)

17:55:19Finished GetOrders: numOrderCalls:1 numOrderItemsCalls:44


Laut Eventlog wird 1 numOrderCall durchgeführt und 44 numOrderItemsCalls.

In der Amazon Doku steht hierzu:


Throttling

The ListOrders and ListOrdersByNextToken operations together share a maximum request quota of six and a restore rate of one request every minute.

Throttling

The ListOrderItems and ListOrderItemsByNextToken operations together share a maximum request quota of 30 and a restore rate of one request every two seconds. For definitions of throttling terminology, see Orders API.


Ich nehme mal an, dass es an der Beschränkung nur 30 Artikel liegt. Gibt es irgendeinen Trick, wie ich das Limit umgehen kann. Kann man die einzelnen API Calls "strecken" ? Was ist eure Empfehlung?

Der Flow soll werktags stündlich von 9-16 Uhr laufen. Dabei sollen nur Bestellungen abgerufen werden, die seit dem letzten Flowrun erzeugt wurden. Besonders über Nacht und über das Wochenende werden aber trotzdem einige Bestellungen zusammenkommen, die das Limit nicht abdeckt. :(

Viele Grüße
Diana


Wir schauen uns das Thema an. 

Hallo Synesty Team,

vielen Dank. Mir würde auch schon ein Tipp zur Best-Practise reichen. Ich kann die Aufträge auch per Report abholen, ggf. sogar in einen Datastore zwischenspeichern (damit dann verschiedene Flows darauf zugreifen können), und anschließend nur bestimmte Datensätze aus dem Datastore verarbeiten.

Evtl. ist das ja die geschicktere Variante.


Wartet der MWSRequestReport Step denn immer ab, bis der Bericht vollständig erzeugt ist?

Es wird gerade das RateLimiting verbessert, damit das Limit besser berücksichtigt.
Den MWSRequestReport Step kannst du auch probieren. Der ist aber anders von der Struktur. 


1 Person gefällt dies

Super, vielen Dank. Wie genau sieht die Verbesserung aus? Werden die Calls einfach mehr in die Länge gestreckt?


Den MWSRequestReport habe ich auch schon probiert bzw. damit gebastelt. Hierfür benötige ich nur einen zusätzlichen Datastore, damit die Bestellungen nicht doppelt verarbeitet werden. Das wäre mit dem MWSOrderSearch Step nicht notwendig, wenn man die Zeit des letzten Flowruns einbezieht. Aber dafür habe ich aktuell mit den Reports keine Limitprobleme. Das ist auch viel wert ;)

Der MWSSearchOrder Step gibt zwar eine Warnung beim Überschreiten der Limits holt aber die Aufträge bis zum Erreichen des Limits trotzdem ab und gibt diese als Output weiter. Man kann also durch ein Setzen der Import Limits auf z.B 30 Orders und mehrfaches ausführen des Flows in kürzeren Abständen ganz gut trotz des Throttlings von Amazon arbeiten. So ist jedenfalls unsere Erfahrung.
Viele Grüße

Tobias

Anmelden um einen Kommentar zu veröffentlichen