1
0

Remove order prior to .find_in_batches (#1470)

The `Status` class has a default order on it, so when this query gets built and
gets all the way to `find_in_batches` there is an order already there.

When `find_in_batches` is run it discards any existing order on the query, and
emits a warning to the logs if there is one there.

This change removes the order prior calling `find_in_batches`, which will stop
the logged warning from occurring as well.
This commit is contained in:
Matt Jankowski 2017-04-10 18:38:34 -04:00 committed by Eugen
parent 3672a799d4
commit b57eed4584

View File

@ -66,7 +66,7 @@ class FeedManager
timeline_key = key(:home, into_account.id) timeline_key = key(:home, into_account.id)
oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true)&.first&.last&.to_i || 0 oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true)&.first&.last&.to_i || 0
from_account.statuses.select('id').where('id > ?', oldest_home_score).find_in_batches do |statuses| from_account.statuses.select('id').where('id > ?', oldest_home_score).reorder(nil).find_in_batches do |statuses|
redis.pipelined do redis.pipelined do
statuses.each do |status| statuses.each do |status|
redis.zrem(timeline_key, status.id) redis.zrem(timeline_key, status.id)