50.000 Mal im Monat? Die übermäßigen anrufe der api wurden endlich gelöst.
Kürzlich kam ein Freund zu mir und sagte, er habe ein ernstes Problem in der Backstage des Flugbuchentwicklers gefunden: /open-apis/bot/v3/info, diese Schnittstelle wird hunderte Male pro Minute aufgerufen, und 50.000 Mal im Monat wird es ausgehen!

Wie haben Sie das herausgefunden?
Freunde in der "API Call Statistics" Backstage des Flying Book Developers sahen eine außergewöhnlich hohe Anzahl von Anrufen für diese Schnittstelle:
| Indikatoren | Wert |
| Anzahl der täglichen Anrufe | 43200+ mal |
| Jede Minute anrufen | ~ 300 mal |
| Geschätzter monatlicher Verbrauch | Fast 50.000 Mal. |
Er ist weg: Ich bin ein Roboter. Wie kann ich so oft anrufen?
Die Ursachen des Problems
Ich lief OpenClaws Flybook-Erweiterungscode und fand ihn an zwei Stellen:
1. Statuscheck löst API-Aufruf aus
Die Funktion probeFeishu() ruft die Botinfo-Schnittstelle für fliegende Bücher auf, wenn Sie nach dem Roboterstatus fragen. Diese Funktion wird in den folgenden Szenarien aufgerufen:
- Erhalten Sie OpenID beim Start
- Wenn externe Systemabfrage Status
- Wenn WebSocket getrennt ist
2. Fehlen eines Cache-Mechanismus
Der ursprüngliche Code war "Fragen Sie jeden Anruf", und es gab keinen Cache. Selbst wenn Sie nach einem Zustand von 10 Mal fragen, haben Sie 10 API-Aufrufe.
Lösungen: 5 Minuten Cache-Mechanismus
Ich habe den probe.ts einen einfachen Cache hinzugefügt:
// 缓存配置:5分钟内不重复调用 API
const CACHE_TTL_MS = 5 * 60 * 1000;
const botInfoCache = new Map();
Die Kernlogik ist einfach:
- Erster Aufruf ♪ Anfrage für Flugbücher API ♪ Cache Ergebnisse
- Rufen Sie in 5 Minuten erneut an. ○ Direct Back Cache (keine neue Anfrage gestartet)
- Auch das Versagen verstopfte sich. Vermeiden Sie wiederholte Anfragen beim Scheitern
Modifizierte Wirkungen
| Kontrast | Vor der Änderung | geändert |
|---|---|---|
| Jede Statusabfrage | Call API | Direkt-Cache |
| Fehlgeschlagen, es erneut zu versuchen | Unbegrenzte Retry | Cache 5 Minuten |
| Geschätzter monatlicher Verbrauch | 50000+ mal | ~ 300 mal |
Es ist einfach.Maximal 1 Anruf pro 5 Minuten, 24 Stunden pro Tag = 288 Mal pro Monat, ungefähr 3.500 Mal pro Jahr. Das ursprüngliche 50-Grand / Monatslimit, es wird nicht ausgehen!
Szene anwenden
Dieses Programm eignet sich besonders für:
- Benutzer erweitert mit OpenClaw
- Entwickeln Sie Ihren eigenen Flugbuchroboter und rufen Sie das Botinfo-Interface häufig an
- Die API-Skala ist dringend und will die Anzahl der Anrufe optimieren
Zusammenfassung
Das Überzuweisungsproblem der Flying Book API wird im Wesentlichen durch das Fehlen eines Cache-Mechanismus verursacht. Die Lösung ist einfach: Rufen Sie die Schnittstelle mit einem Cache auf.
Manchmal ist die einfachste Optimierung die effektivste.