Discourse API generiert 429

Hallo,

Ich versuche, die Discourse-API zu verwenden, um alberne Antworten in einem Forum zu geben. Wenn zum Beispiel jemand in einem Thread „Linux“ sagt, antwortet Discobot: „Meinen Sie GNU/Linux?“

Es funktioniert, es sei denn, jemand antwortet mit derselben Phrase, dann erhalte ich zwei Minuten lang eine Reihe von 429- oder leeren Antworten (es sind fast genau zwei Minuten), danach beginnt die API wieder normal, Antworten zu verarbeiten.

Zum Beispiel:

Linux
FOSS
dotNET
Java
Linux

Dies funktioniert korrekt. Jedoch:

Linux
FOSS
dotNET
Linux
Linux

Dies wird fehlschlagen.

Haben Sie eine Ahnung, worauf sich das Zwei-Minuten-Fenster bezieht? Wir haben mit den app.yml-Einstellungen experimentiert und die API-Ratenbegrenzungen angepasst. Es schien keine Auswirkung zu haben.

Danke!

Wir benötigen weitere Informationen. Welchen API-Endpunkt rufen Sie auf und erhalten 429?

1 „Gefällt mir“
https://forum.domain.net/t/1000/highestPost.json

GET-Anfrage an diese URL
highestPost ist die highest_post_number des Threads

Das bedeutet, dass Sie einer Ratenbegrenzung unterliegen. Wenn Sie neue Beiträge verfolgen möchten, ist ein solches Pooling sehr ineffizient. Kann ich stattdessen Webhooks vorschlagen? Auf diese Weise können Sie auf neue Beiträge reagieren, anstatt zu pollen, auch wenn nichts passiert.

Sicher, ich kann mir Webhooks ansehen.

Wissen Sie, wie man die Antwort-Rate-Limits deaktiviert? Ich glaube, wir haben bereits einige in der app.yml geändert, alles, was sich auf die API bezog, von diesem Link:

Ist das etwas Spezifisches in Nginx, das wir untersuchen müssen?

Es gibt eine Nginx-Vorlage, die standardmäßig hinzugefügt wird. Sie wird eine der allerersten Zeilen der app.yml sein. Möglicherweise möchten Sie diejenige entfernen, die sich auf Ratenbegrenzungen bezieht, und neu erstellen, damit sie wirksam wird.

3 „Gefällt mir“

w00t. Ich werde das versuchen. Vielen Dank für Ihre Hilfe!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.