← Zurück zur Liste

50.000 Mal im Monat? Die übermäßigen anrufe der api wurden endlich gelöst.

itadol5j

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!

Flugbuch API Call Monitor

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:

IndikatorenWert
Anzahl der täglichen Anrufe43200+ mal
Jede Minute anrufen~ 300 mal
Geschätzter monatlicher VerbrauchFast 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

KontrastVor der Änderunggeändert
Jede StatusabfrageCall APIDirekt-Cache
Fehlgeschlagen, es erneut zu versuchenUnbegrenzte RetryCache 5 Minuten
Geschätzter monatlicher Verbrauch50000+ 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.