Heroku に、クライアントの最新のツイートを取得してすべてのページに表示する小さな Rails アプリがあります。すでに Twitter のレート制限に達しています。私は解決策を考え出そうとしています。以下は賢明なアプローチでしょうか...
Whenのような cron gem を使用して、毎分最新のツイートを取得し、ファイルに書き込みます。その後、Twitter から直接ではなく、そのファイルからツイートをページに取得させます。
Twitter の具体的なレート制限については詳しくありませんが、リクエスト/分で表されている場合は、cron ジョブが機能する可能性があります。何をするにしても、着信トラフィックがリクエストを駆動するのを止める必要があります。通常、キューを作成し、そこから 1 つのワーカー プル リクエストを取得します。そのワーカーはレート制限自体を処理するため、オーバーすることはありません。
API レート制限は必要悪です。たぶん、他の人々が自分自身を簡単に抑制できるようにする宝石を作ることができます.
はい、これは 1 つの可能性です。または、たとえば Memcached を使用して、キャッシングを使用してツイートを保存することもできます。これにより、アプリも高速化されます。
リクエストをキャッシュするためにmemcacheを使用することになりました:
latest_tweet = Rails.cache.read "latest_tweet"
if !latest_tweet
latest_tweet = Twitter.user_timeline("sometwitterusername").first.text
Rails.cache.write("latest_tweet", latest_tweet, :expires_in => 5.minutes)
end