2

$.ajaxTwitter の検索機能を使用して、ツイートのリスト (この場合は特定のハッシュタグが付いた 25 件) を取得しようとしています。

私には少し不明な点が2つあります。

  1. 期間はどのくらいですcache: trueか (キャッシュを使用する代わりに新しいリクエストを送信するまでにかかる時間)? 現時点では数秒ごとのようですが、正確な期間と、これを変更できるかどうか、またはどのように変更できるかを知りたいです。

  2. Twitter から情報を取得するこの作業は、約 2000 ~ 3000 人のユーザーによってランダムに行われますが、その後しばらくの間はおそらく同じ人によって行われることはありません。Twitter はこれにどのように対応しますか (リクエストが多すぎるため、IP アドレスをブロックします)? これが、リクエストの量を減らすために、約 1 ~ 5 分間情報をキャッシュする理由です。

TL;DR: Twitter の検索機能に対して多くのリクエストを行っています。負荷を軽減するにはどうすればよいですか?

4

1 に答える 1

1

のキャッシュ時間$.ajaxはブラウザに依存する可能性が最も高いため、これに依存して Twitter API に対する負荷のバランスを取るべきではありません。{ cache: false }このキャッシュは、設定パラメーターに渡すことでオフにすることができます。代わりに、独自のキャッシュ システムを実装する必要があります。

Twitter には、これを説明するページがあります: https://dev.twitter.com/docs/rate-limiting

特定の期間内に残っているリクエストの数を通知するために、いくつかのヘッダーを送信すると言われています。あなたがしなければならないことは、Twitterがあなたに課す制限を超えないように、十分長くキャッシュすることです. サービスのさまざまな負荷が Twitter API への呼び出しの総数にどのように影響するかを確認するためにいくつかのテストを行い、それに応じてキャッシュ システムを設計する必要があります。ここでの最適な解決策は、おそらく a から b'o-clock までは c 分間キャッシュする必要があり、d から e'o-clock までは f 分間キャッシュする必要があるというものです。別の解決策として、発生中の負荷を追跡し、リアルタイムでキャッシュ時間を決定するシステムを実装することも考えられます。これらの解決策の両方が困難な場合は、制限を超えないように十分な長さのキャッシュ時間を選択するだけで済む可能性があります。

于 2013-03-07T10:35:42.570 に答える