خمسون ألف مرة في الشهر؟ النداءات المفرطة لـ (آبي) تم حلها أخيراً
في الآونة الأخيرة، جاء لي صديق وقال انه وجد مشكلة خطيرة في الجزء الخلفي من مطور الكتاب الطائرة:

كيف عرفت؟
الأصدقاء في "إحصائيات النداءات" خلف مطور الكتاب المطير شاهدوا عدداً كبيراً جداً
| المؤشرات | القيمة |
| عدد المكالمات اليومية | 43200 مرة |
| كل دقيقة | 300 مرة |
| الاستهلاك الشهري التقديري | حوالي 50000 مرة |
لقد رحل أنا رجل آلي كيف يمكنني الاتصال كثيراً؟
الأسباب الجذرية للمشكلة
لقد بحثت في برنامج (أوبنكلو) للتمديد و وجدته في مكانين:
1. Status check trigger API call
وظيفة المسبار (فيشو) تُدعى واجهة (بوتينفو) للكتب الطائرّة في كلّ مرّة تسأل فيها عن وضع الإنسان الآلي. وتُستدعى هذه الوظيفة في السيناريوهات التالية:
- الحصول على مفتوح على بداية
- عند الاستفسار عن حالة النظام الخارجي
- عندما يقطع ويب سوكيت
2. Lack of a cache mechanism
الرمز الأصلي كان "اسأل كل مكالمة" ولم يكن هناك مخبأ حتى لو طلبت حالة 10 مرات سيكون لديك 10 مكالمات
الحلول: 5 دقائق
لقد أضفت مخبأ بسيط إلى المسبار
// 缓存配置:5分钟内不重复调用 API
const CACHE_TTL_MS = 5 * 60 * 1000;
const botInfoCache = new Map();
المنطق الأساسي بسيط:
- النداء الأول ♪ Request for fly books API ♪ Cache results
- اتصل مرة أخرى في 5 دقائق. ○ العودة مباشرة إلى المخبأ (لم يبدأ أي طلب جديد)
- الفشل أيضاً قد جُرح تجنب الطلبات المتكررة عند الفشل
الآثار المعدلة
| Contrast | قبل تعديل | معدلة |
|---|---|---|
| جميع الاستفسارات عن الحالة | Call API | Direct Cache |
| فشل في المحاولة مرة أخرى | غير محدودة | الخوخ 5 دقائق |
| الاستهلاك الشهري التقديري | 50000 مرة | 300 مرة |
الأمر بسيط: حد أقصى قدره اتصال واحد في 5 دقائق، 24 ساعة في اليوم = 288 مرة في الشهر، حوالي 500 3 مرة في السنة. الـ 50 ألف دولار الأصيلة لن ينفد
مشهد التطبيق
وهذا البرنامج مناسب بصفة خاصة لما يلي:
- مستخدمون ممتدون مع القانون المفتوح العضوية
- اصنع روبوتاً لكتاب الطيران الخاص بك واتصل بواجهة "بوتينفو" مراراً
- The API scale is urgent and wants to optimize the number of calls
موجز
مشكلة الإفراط في توزيع الكتاب هي أساساً سببها عدم وجود آلية مخبأة والحل بسيط: دعوة واجهة مع مخبأ.
في بعض الأحيان يكون أبسط قدر من الفعالية.