← Powrót do listy

50,000 razy w miesiącu? Nadmierne rozmowy API w końcu zostały rozwiązane.

itadol5j

Ostatnio, przyjaciel przyszedł do mnie i powiedział, że znalazł poważny problem za kulisami latającej książki deweloper: / open- apis / bot / v3 / info, ten interfejs jest nazywany setki razy na minutę, i 50.000 razy w miesiącu to się skończy!

Name

Jak się dowiedziałaś?

Przyjaciele z "API Call Statistics" za kulisami Latającego Dewelopera Książki widzieli wyjątkowo dużą liczbę połączeń dla tego interfejsu:

WskaźnikiWartość
Liczba połączeń dziennych43200 + razy
Dzwoń co minutę.300 razy
Szacowana miesięczna konsumpcjaPrawie 50 000 razy.

Jestem robotem. Jak mogę dzwonić tak często?

Podstawowe przyczyny problemu

Sprawdziłam kod rozszerzeń OpenClaw i znalazłam go w dwóch miejscach:

1. Sprawdzanie stanu wywołania API

Funkcja probeFeishu () wywołuje interfejs botinfo dla latających książek za każdym razem, gdy pytasz o status robota. Funkcja ta jest wywołana w następujących scenariuszach:

  • Pobierz OpenID przy starcie
  • Gdy zewnętrzny system stan zapytania
  • Kiedy WebSocket jest odłączony

2. Brak mechanizmu buforowego

Oryginalny kod brzmiał "Pytaj o każde połączenie" i nie było pamięci podręcznej. Nawet jeśli poprosisz o 10 razy, będziesz miał 10 telefonów API.

Rozwiązania: 5 minutowy mechanizm pamięci podręcznej

Dodałem prosty cache do probe.ts:

// 缓存配置:5分钟内不重复调用 API
const CACHE_TTL_MS = 5 * 60 * 1000;
const botInfoCache = new Map();

Podstawowa logika jest prosta:

  • Pierwsze wezwanie Prośba o latające książki API Wyniki Cache
  • Zadzwoń za 5 minut. ■ Bezpośrednia pamięć podręczna (nie uruchomiono nowego wniosku)
  • Niepowodzenie również zatkało się. → Unikaj powtarzających się żądań w przypadku niepowodzenia

Zmodyfikowane efekty

KontrastPrzed modyfikacjązmodyfikowany
Każde zapytanie o statusZadzwoń do APIBezpośrednia obudowa
Nie udało się spróbować ponownieNieograniczony ciągCache 5 minut
Szacowana miesięczna konsumpcja50000 + razy300 razy

To proste.: Maksymalnie 1 połączenie na 5 minut, 24 godziny na dobę = 288 razy na miesiąc, około 3500 razy na rok. Oryginalny limit 50 tysięcy miesięcznie, nie skończy się!

Zastosuj scenę

Program ten jest szczególnie odpowiedni dla:

  • Użytkownicy rozszerzeni OpenClaw
  • Rozwijaj swój własny latający robot książki i często dzwoń do interfejsu botinfo
  • Skala API jest pilna i chce zoptymalizować liczbę połączeń

Streszczenie

Problem nadmiernej alokacji API Flying Book wynika głównie z braku mechanizmu pamięci podręcznej. Rozwiązanie jest proste: wywołać interfejs z pamięci podręcznej.

Czasami najprostsza optymalizacja jest najbardziej skuteczna.