diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-04-26 21:48:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-26 21:48:36 +0200 |
commit | b9197486e5bb0710526d6155347cc2c6f8b5948a (patch) | |
tree | d8cf17f4d856a4cafda54a5801adeb39e2350911 /app | |
parent | 0360135d4d39d838fa9b090abc1e76284eb8ff64 (diff) |
Fix UnmergeWorker being exceptionally slow in some conditions (#18110)
Diffstat (limited to 'app')
-rw-r--r-- | app/lib/feed_manager.rb | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index 34bb63b8d..26285bfee 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -157,10 +157,10 @@ class FeedManager # @param [Account] into_account # @return [void] def unmerge_from_home(from_account, into_account) - timeline_key = key(:home, into_account.id) - oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true)&.first&.last&.to_i || 0 + timeline_key = key(:home, into_account.id) + timeline_status_ids = redis.zrange(timeline_key, 0, -1) - from_account.statuses.select('id, reblog_of_id').where('id > ?', oldest_home_score).reorder(nil).find_each do |status| + from_account.statuses.select('id, reblog_of_id').where(id: timeline_status_ids).reorder(nil).find_each do |status| remove_from_feed(:home, into_account.id, status, into_account.user&.aggregates_reblogs?) end end @@ -170,10 +170,10 @@ class FeedManager # @param [List] list # @return [void] def unmerge_from_list(from_account, list) - timeline_key = key(:list, list.id) - oldest_list_score = redis.zrange(timeline_key, 0, 0, with_scores: true)&.first&.last&.to_i || 0 + timeline_key = key(:list, list.id) + timeline_status_ids = redis.zrange(timeline_key, 0, -1) - from_account.statuses.select('id, reblog_of_id').where('id > ?', oldest_list_score).reorder(nil).find_each do |status| + from_account.statuses.select('id, reblog_of_id').where(id: timeline_status_ids).reorder(nil).find_each do |status| remove_from_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?) end end |