2012-02-13 15 views
0

私はすべてのページに表示するために私のクライアントの最新のツイートを引き込むヘロクの小さなレールアプリを持っています。それはすでにTwitterのレート制限を打つことです。私は解決策を見出そうとしています。以下は合理的なアプローチになりますか?Twitterのレート制限とレールでのCronキャッシング

Wheneverのようなcronの宝石を使用して毎分最新のツイートをプルダウンしてファイルに書き込んだ後、Twitterから直接ではなくそのファイルからページを取り出すようにしてください。

答えて

1

はい、これも可能です。または、cachingを使用して、たとえばMemcachedを使用してツイートを保存することができます。これにより、アプリの処理速度も向上します。

1

私はtwitterの特定のレート制限に精通していませんが、1分あたりのリクエスト数で表現されていれば、cronジョブが機能するかもしれません。あなたが何をするにしても、着信トラフィックがあなたの要求を動かすのを止める必要があります。通常は、キューを作成し、1人のワーカーにリクエストをプルします。そのワーカーは、レート制限自体を処理して、あなたが行き過ぎないようにします。

APIレート制限は必要な悪です。たぶんあなたは他の人々が簡単に自分自身を絞り込むのを助ける宝石を作ることができます。

0

私は要求をキャッシュするための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 
関連する問題