PERF: instead of N redis operations perform in bulk

This commit is contained in:
Sam 2015-10-02 15:00:51 +10:00
parent 43345063b9
commit 1754fcccf7
1 changed files with 9 additions and 7 deletions

View File

@ -40,16 +40,18 @@ class RandomTopicSelector
results = []
left = count
return results if count < 1
while left > 0
id = $redis.lpop key
break unless id
results << id.to_i
left -= 1
results = $redis.multi do
$redis.lrange(key, 0, count-1)
$redis.ltrim(key, count, -1)
end
results = results[0]
results.map!(&:to_i)
left = count - results.length
backfilled = false
if left > 0
ids = backfill(category)