Benutzer_10_Sekunden_Limit

Verlangsamen Sie, Sie tätigen zu viele Anfragen.
Bitte versuchen Sie es in 5 Sekunden erneut.
Fehlercode: user_10_secs_limit.

Ich habe ein Theme erstellt, das await ajax(/t/${this.args.topic.id}.json); verwendet. Dies wird aufgrund von zu vielen Anfragen ratenbegrenzt. Wie kann ich das vermeiden? Mir ist aufgefallen, dass die Einschränkung als ​benutzerbezogenes Limit und nicht als IP-basiertes Limit gekennzeichnet ist.

Befinden Sie sich hinter einem Load Balancer wie Cloudflare, damit Discourse die tatsächliche IP-Adresse des Benutzers nicht kennt?

Ein schnelles grep und ich sehe user_10_secs_limit nicht im Code, außer in einer Spec. Ich vermute, es könnte IP-bezogen sein, trotz des Fehlers, den Sie sehen.

Hier - Du kannst es nicht greppen :slight_smile:

error_code: \"#{error_code_identifier}_10_secs_limit\",

Kommt von discourse/lib/request_tracker/rate_limiters/user.rb at main · discourse/discourse · GitHub

@truman macht deine Theme-Komponente das für viele Themen? Was genau versuchst du zu erreichen? Du solltest entweder sehen, ob du die Aufrufe kombinieren kannst, zum Beispiel indem du die Themen markierst und sie dann per Tag in einem einzigen Aufruf abrufst, und/oder du solltest einen Cache-Mechanismus finden.

2 „Gefällt mir“

Aha! Ich hatte das Gefühl, ich übersehe etwas Einfaches. . .

1 „Gefällt mir“

Ich möchte die Reaktionen für jedes Thema abrufen, damit ich sie auf der Homepage anzeigen kann. Zum Beispiel:
image

Sie müssen dies in einem Plugin serialisieren, um all diese Abfragen zu vermeiden.

4 „Gefällt mir“

Holen Sie sich das all-the-plugins Repository und suchen Sie nach add_to_serializer

3 „Gefällt mir“

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