سؤال

أنا أعمل مع تطبيق Java Twitter (باستخدام API Twitter4J). لقد قمت بإنشاء التطبيق ويمكنك عرض الجدول الزمني للمستخدمين الحاليين وملفات تعريف المستخدم وما إلى ذلك ..

ومع ذلك ، عند استخدام التطبيق ، يبدو أنه يتجاوز بسرعة 150 طلبًا من سعر الساعة المحددة على عملاء Twitter (أعرف أن المطورين يمكنهم زيادة هذا إلى 350 على حسابات معينة ، لكن هذا لن يحل للمستخدمين الآخرين).

بالتأكيد هذا لا يؤثر على جميع العملاء ، أي أفكار حول كيفية التغلب على هذا؟

هل يعرف أحد ما الذي يعتبر طلبًا؟ على سبيل المثال ، عندما أقوم بعرض ملف تعريف المستخدم ، أقوم بتحميل كائن المستخدم (Twitter4J) ثم الحصول على ScreenName ، اسم المستخدم ، وصف المستخدم ، حالة المستخدم ، إلخ لوضعه في كائن JSON - هل تكون هذه مكالمة واحدة للحصول على الكائن أو هل يمكن أن تضم العديد من المستخدمين.

شكرا مقدما

هل كانت مفيدة؟

المحلول

تحتاج حقًا إلى تتبع ما هو عدد طلباتك الحالية عند التعامل مع Twitter.

ومع ذلك ، لا يبدو أن Twitter يسقط العدد لـ 304 لم يتم تعديله (على الأقل لم يكن آخر مرة تعاملت معها) ، لذا تأكد في الساعة ترتفع.

لاحظ أن Twitter يعاني من خطأ في mod_gzip على Apache حيث يتم تشكيل العلامة الإلكترونية في تغييره ليعكس أن ترميز المحتوى يختلف عن الكيان غير المغطى بـ Gzipped (هذا هو الشيء الصحيح الذي يجب فعله ، هناك مجرد خطأ في التنفيذ). لهذا السبب ، يعني قبول محتوى Gzipped من Twitter أنه لن يرسل أبدًا 304 ، مما يزيد من عدد الطلبات ، وفي كثير من الحالات يقوض مكاسب الكفاءة في استخدام GZIP.

وبالتالي ، إذا كنت تقبل GZIP (قد تقوم مكتبة الويب الخاصة بك بالقيام بذلك افتراضيًا ، راجع ما يمكنك رؤيته مع أداة مثل Fiddler ، فأنا رجل .net مع القليل من المعرفة Java ، والرد على مستوى كيفية Twitter يتعامل مع HTTP لذلك لا أعرف تفاصيل مكتبات الويب Java) ، حاول إيقاف تشغيل ذلك ، ومعرفة ما إذا كان يحسن الأشياء.

نصائح أخرى

تقريبًا كل نوع من أنواع القراءة من خوادم Twitter (أي أي شيء يدعو HTTP GET) يحسب كطلب. الحصول على جداول زمنية للمستخدم ، وإعادة تغريد ، والرسائل المباشرة ، والحصول على بيانات المستخدم جميعها على أنها طلب واحد لكل منهما. إلى حد كبير ، فإن مكالمة API على Twitter الوحيدة التي تقرأ من الخادم دون الاعتماد على حد API الخاص بك هو التحقق من رؤية حالة حد السعر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top