commit: f79c10162e51689f6759dfa39251c8ba8e7e11e8
parent: 60b2b56d380c7cd3dc0ba54f4650cfdba568e38e
Author: Akihiko Odaki (@fn_aki@pawoo.net) <akihiko.odaki.4i@stu.hosei.ac.jp>
Date: Thu, 29 Jun 2017 08:25:31 +0900
Use multiple pairs for zadd in PrecomputeFeedService (#3990)
Diffstat:
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/app/services/precompute_feed_service.rb b/app/services/precompute_feed_service.rb
@@ -13,21 +13,16 @@ class PrecomputeFeedService < BaseService
attr_reader :account
def populate_feed
- redis.pipelined do
- statuses.reverse_each do |status|
- process_status(status)
- end
+ pairs = statuses.reverse_each.map(&method(:process_status))
+ redis.pipelined do
+ redis.zadd(account_home_key, pairs)
redis.del("account:#{@account.id}:regeneration")
end
end
def process_status(status)
- add_status_to_feed(status) unless status_filtered?(status)
- end
-
- def add_status_to_feed(status)
- redis.zadd(account_home_key, status.id, status.reblog? ? status.reblog_of_id : status.id)
+ [status.id, status.reblog? ? status.reblog_of_id : status.id] unless status_filtered?(status)
end
def status_filtered?(status)