limit number of synchronous saved search updates

This commit is contained in:
Albert Yi
2019-07-02 17:16:33 -07:00
parent 318bee9953
commit 5e5e86c383
2 changed files with 17 additions and 1 deletions

View File

@@ -19,16 +19,18 @@ class SavedSearch < ApplicationRecord
label = normalize_label(label) if label
queries = queries_for(user_id, label: label)
post_ids = Set.new
update_count = 0
queries.each do |query|
redis_key = "search:#{query}"
if redis.exists(redis_key)
sub_ids = redis.smembers(redis_key).map(&:to_i)
post_ids.merge(sub_ids)
redis.expire(redis_key, REDIS_EXPIRY)
elsif CurrentUser.is_gold?
elsif CurrentUser.is_gold? && update_count < 5
SavedSearch.populate(query)
sub_ids = redis.smembers(redis_key).map(&:to_i)
post_ids.merge(sub_ids)
update_count += 1
else
SavedSearch.delay(queue: "default").populate(query)
end