← Retour à la liste

50 000 fois par mois ? Les appels excessifs de l'API ont finalement été résolus.

itadol5j

Récemment, un ami est venu me voir et m'a dit qu'il avait trouvé un grave problème dans les coulisses du développeur de livres volants : /open-apis/bot/v3/info, cette interface s'appelle des centaines de fois par minute, et 50 000 fois par mois elle va s'épuiser !

Moniteur d'appels API du carnet de vol

Comment l'avez-vous découvert ?

Les amis dans les coulisses "API Call Statistics" du Flying Book Developer ont vu un nombre exceptionnellement élevé d'appels pour cette interface:

IndicateursValeur
Nombre d'appels quotidiens43200+ fois
Appelez chaque minute~ 300 fois
Consommation mensuelle estiméePrès de 50 000 fois.

Je suis un robot. Comment appeler si souvent ?

Les causes profondes du problème

J'ai lancé le code d'extension de flybook d'OpenClaw et je l'ai trouvé à deux endroits :

1. Appel API du déclencheur de vérification d'état

La fonction sondeFeishu() appelle l'interface botinfo pour les livres volants chaque fois que vous demandez sur le statut du robot. Cette fonction est appelée dans les scénarios suivants:

  • Obtenir OpenID au démarrage
  • Lorsque l'état de la requête système externe
  • Lorsque WebSocket est déconnecté

2. Absence de mécanisme de cache

Le code original était "Demandez chaque appel", et il n'y avait pas de cache. Même si vous demandez un état de 10 fois, vous aurez 10 appels API.

Solutions : mécanisme cache de 5 minutes

J'ai ajouté un cache simple à la sonde.ts:

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

La logique fondamentale est simple:

  • Premier appel ♪ Demande de livres volants API ♪ Résultats de cache
  • Appelez dans 5 minutes. cache arrière direct (aucune nouvelle requête n'a été lancée)
  • L'échec s'est également obstrué. → Évitez les demandes répétées en cas d'échec

Effets modifiés

ContrasteAvant de modifiermodifié
Chaque requête d'étatAppeler l'APICache directe
Échec de réessayerEssai illimitéCache 5 minutes
Consommation mensuelle estimée50000+ fois~ 300 fois

C'est simple.: Un maximum de 1 appel par 5 minutes, 24 heures par jour = 288 fois par mois, environ 3 500 fois par an. La limite initiale de 50 000 $ par mois, ça ne va pas s'épuiser !

Appliquer la scène

Ce programme est particulièrement adapté pour:

  • Utilisateurs étendus avec OpenClaw
  • Développez votre propre robot de livre volant et appelez fréquemment l'interface botinfo
  • L'échelle API est urgente et veut optimiser le nombre d'appels

Résumé

Le problème de surallocation de l'API du livre volant est essentiellement causé par l'absence d'un mécanisme de cache. La solution est simple : appelez l'interface avec un cache.

Parfois, l'optimisation la plus simple est la plus efficace.