[redis] More connection pooling changes
This commit is contained in:
@@ -9,15 +9,19 @@ class ActivityTracker
|
||||
def increment(prefix)
|
||||
key = [prefix, current_week].join(':')
|
||||
|
||||
redis.incrby(key, 1)
|
||||
redis.expire(key, EXPIRE_AFTER)
|
||||
redis.with do |conn|
|
||||
conn.incrby(key, 1)
|
||||
conn.expire(key, EXPIRE_AFTER)
|
||||
end
|
||||
end
|
||||
|
||||
def record(prefix, value)
|
||||
key = [prefix, current_week].join(':')
|
||||
|
||||
redis.pfadd(key, value)
|
||||
redis.expire(key, EXPIRE_AFTER)
|
||||
redis.with do |conn|
|
||||
conn.pfadd(key, value)
|
||||
conn.expire(key, EXPIRE_AFTER)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -4,7 +4,7 @@ require 'singleton'
|
||||
|
||||
class FeedManager
|
||||
include Singleton
|
||||
include Redisable
|
||||
# include Redisable
|
||||
|
||||
MAX_ITEMS = 150
|
||||
|
||||
|
||||
@@ -19,17 +19,24 @@ class PotentialFriendshipTracker
|
||||
key = "interactions:#{account_id}"
|
||||
weight = WEIGHTS[action]
|
||||
|
||||
redis.zincrby(key, weight, target_account_id)
|
||||
redis.zremrangebyrank(key, 0, -MAX_ITEMS)
|
||||
redis.expire(key, EXPIRE_AFTER)
|
||||
redis.with do |conn|
|
||||
conn.zincrby(key, weight, target_account_id)
|
||||
conn.zremrangebyrank(key, 0, -MAX_ITEMS)
|
||||
conn.expire(key, EXPIRE_AFTER)
|
||||
end
|
||||
end
|
||||
|
||||
def remove(account_id, target_account_id)
|
||||
redis.zrem("interactions:#{account_id}", target_account_id)
|
||||
redis.with do |conn|
|
||||
conn.zrem("interactions:#{account_id}", target_account_id)
|
||||
end
|
||||
end
|
||||
|
||||
def get(account_id, limit: 10, offset: 0)
|
||||
account_ids = redis.zrevrange("interactions:#{account_id}", offset, limit)
|
||||
account_ids = []
|
||||
redis.with do |conn|
|
||||
account_ids = conn.zrevrange("interactions:#{account_id}", offset, limit)
|
||||
end
|
||||
return [] if account_ids.empty?
|
||||
Account.searchable.where(id: account_ids).local
|
||||
end
|
||||
|
||||
@@ -10,11 +10,16 @@ class VerifiedSuggestions
|
||||
|
||||
def set(account_ids)
|
||||
return if account_ids.nil? || account_ids.empty?
|
||||
redis.setex(KEY, EXPIRE_AFTER, account_ids)
|
||||
redis.with do |conn|
|
||||
conn.setex(KEY, EXPIRE_AFTER, account_ids)
|
||||
end
|
||||
end
|
||||
|
||||
def get(account_id)
|
||||
account_ids = redis.get(KEY)
|
||||
account_ids = []
|
||||
redis.with do |conn|
|
||||
account_ids = conn.get(KEY)
|
||||
end
|
||||
|
||||
if account_ids.nil? || account_ids.empty?
|
||||
account_ids = Account.searchable
|
||||
@@ -24,7 +29,7 @@ class VerifiedSuggestions
|
||||
.local
|
||||
.limit(MAX_ITEMS)
|
||||
.pluck(:id)
|
||||
|
||||
|
||||
set(account_ids) if account_ids.nil? || account_ids.empty?
|
||||
else
|
||||
account_ids = JSON.parse(account_ids)
|
||||
|
||||
Reference in New Issue
Block a user