← 一覧に戻る

毎月5万回? API の過剰な呼び出しが解決されました。

itadol5j

最近、友人が私に来て、彼はフライングブック開発者の舞台裏で深刻な問題を発見したと述べた:/open-apis/bot/v3/info、このインターフェイスは数百回分と呼ばれ、月に50,000回実行するつもりです!

フライトブックAPIコールモニター

どのように見つけましたか?

Flying Book Developerの「API コール 統計」のバックステージでは、このインターフェイスに対する非常に多くの呼び出しが認められています。

インジケーターバリュー
毎日の通話回数43200+ 回
毎分電話~300回
毎月の消費量を推定50,000回まで

とりあえず、ロボットです。 よく呼べる方法は?

問題の根本原因

OpenClaw の Flybook エクステンションコードを 実行して 2 つの場所で見つけました。

1. ステータスチェックトリガーAPI呼び出し

ProbeFeishu() 関数は、ロボットのステータスを尋ねるたびに、飛行書籍用の botinfo インターフェイスを呼び出します。 この関数は、次のシナリオで呼び出されます。

  • スタートアップでOpenIDを入手
  • 外部システム問い合わせ状況の場合
  • WebSocketが接続されていない場合

2. キャッシュメカニズムの欠如

元のコードは "Ask all call" で、キャッシュがなかった。 10回の状態を尋ねても、10回のAPIコールが10個あります。

ソリューション: 5分キャッシュメカニズム

シンプルなキャッシュをプローブに追加しました。

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

コアロジックは簡単です。

  • ファーストコール ♪ フライングブックのAPIリクエスト♪ キャッシュ結果
  • 5分で再び電話をかけます。 ○ ダイレクトバックキャッシュ(新規リクエストの開始なし)
  • 障害も詰まっています。 → 失敗時に繰り返されたリクエストを避ける

変更された効果

コントラスト変更する前に更新履歴
すべてのステータスクエリコールAPI直接キャッシュ
再試行に失敗無制限のリトライキャッシュ5分
毎月の消費量を推定50000+ 回~300回

シンプルです。: 1日24時間、1日あたりの最大1回の通話回数=288回/月、約3500回 原本50本/月限、走るつもりはない!

シーンを適用する

このプログラムは、特に適しています。

  • OpenClaw でユーザーを拡張
  • 独自のフライングブックロボットを開発し、botinfoインターフェイスを頻繁に呼び出します
  • API のスケールは緊急で、呼び出し回数を最適化したい

インフォメーション

Flying Book APIのオーバーロケーション問題は、キャッシュメカニズムの欠如によって本質的に引き起こされます。 解決策は簡単です: インターフェイスをキャッシュで呼び出します。

時には最も簡単な最適化が最も効果的です。