Do not push status to feed if its reblog is already inserted (#6488)
A complemental change for precompute_feed_service_spec.rb also fixes its random failure which is caused by the Snowlake randomization of the order of an original status and its reblog.
This commit is contained in:
parent
e668180044
commit
f8f0572ee0
4 changed files with 45 additions and 7 deletions
|
@ -220,6 +220,14 @@ class FeedManager
|
|||
return false
|
||||
end
|
||||
else
|
||||
# A reblog may reach earlier than the original status because of the
|
||||
# delay of the worker deliverying the original status, the late addition
|
||||
# by merging timelines, and other reasons.
|
||||
# If such a reblog already exists, just do not re-insert it into the feed.
|
||||
rank = redis.zrevrank(reblog_key, status.id)
|
||||
|
||||
return false unless rank.nil?
|
||||
|
||||
redis.zadd(timeline_key, status.id, status.id)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue