Ich habe eine Frage darüber, wie ich meine API-Anfragen verlangsamen. Für eine bestimmte Drittanbieter-API, die ich treffe, kann ich alle 2 Sekunden 3 Anfragen stellen. Wenn ich über diese Nummer gehe, werde ich status code 429
zusammen mit einer Wartezeit in Millisekunden zurückgegeben.Ratenbegrenzung Anfragen und Amazon SQS
Diese API wird oft aufgerufen und ist ein direktes Ergebnis meines eigenen Servers mit eingehenden Anfragen, die nicht Rate-begrenzt sind.
Da ich keine synchrone Behandlung der API-Anfragen von Drittanbietern benötige, entschied ich mich, die Arbeit auf meine EFS-Worker-Box in AWS zu verlagern, die standardmäßig von Amazon SQS liest.
Als Ergebnis wird mein Worker die SQS-Nachricht in die Warteschlange zurückwerfen, wenn ein Statuscode 429 von der API der dritten Partei zurückgegeben wird. Dies führt unweigerlich dazu, dass der API-Anruf funktioniert, wenn die Wartezeit erreicht ist. Dies scheint jedoch eine schlechte Lösung zu sein
Gibt es eine Möglichkeit, den Dämon in der Worker-Box zu sagen, die Nachricht in der Warteschlange für die zugewiesene Wartezeit zu verlassen? Oder kann ich vielleicht die Rate einstellen, mit der der Daemon aus der Warteschlange liest? Ich suche nach einem geeigneten Weg (implementierungsspezifisch), um das Limit mit dem Arbeiter und der Warteschlange auf AWS zu begrenzen. Vielen Dank für die Hilfe!
EDIT: Ich hätte angenommen, dass es Konfigurationen gibt, die auf AWS geändert werden könnten, um das zu tun, was ich frage, aber auf jede Art suche ich nach spezifischen Lösungen für das Setup, das ich beschrieben habe. Ich bin mir nicht ganz sicher, wie man den Daemon auf der Box mit den elastischen Bohnenranken verändert oder kontrolliert.
Was ist der Zweck hinter der 3rd Party API? Was ist der Auslöser für den Aufruf? –
Ich verwende einen E-Mail-Marketing-Service eines Drittanbieters, um das E-Mail-Marketing-Konto eines Kunden zu füllen/aktualisieren. Es gibt viele Auslöser in meinem Produkt, um es hauptsächlich in Verbindung mit der Aktualisierung und Bestückung dieser Marketingkonten in Echtzeit zu nennen. – AIntel