# HG changeset patch # User nanaya # Date 1469657332 -32400 # Node ID ff5557f9902cbd6aae0e6126f57c3f1ac697794f # Parent 148d8c17cb79e2405bfb65aad79af226e3bc13bb Avoid uniformly expiring cache diff -r 148d8c17cb79 -r ff5557f9902c app/models/tweet.rb --- a/app/models/tweet.rb Thu Jul 28 04:25:47 2016 +0900 +++ b/app/models/tweet.rb Thu Jul 28 07:08:52 2016 +0900 @@ -1,10 +1,14 @@ class Tweet + def cache_expires_time + (10 + rand(15)).minutes + end + def timeline start_client_config_id = @client_config_id begin @timeline ||= - Rails.cache.fetch({ :timeline => @twitter_id }, :expires_in => 20.minutes) do + Rails.cache.fetch({ :timeline => @twitter_id }, :expires_in => cache_expires_time) do @client.user_timeline(@twitter_id, :count => 40, :exclude_replies => false, :include_rts => true) end rescue Twitter::Error::TooManyRequests @@ -24,7 +28,7 @@ if timeline.any? timeline.first.user else - Rails.cache.fetch({ :user => @twitter_id }, :expires_in => 20.minutes) do + Rails.cache.fetch({ :user => @twitter_id }, :expires_in => cache_expires_time) do @client.user(@twitter_id) end end