Fix/remove calling private method with send in model (#22951)

* fix(status): remove send usage for private unlink_from_conversations

- make unlink_from_conversations public method
- rename unlink_from_conversations to unlink_from_conversations!
- fix send call on private method in statuses_vacuum and batched_remove_status_service

* fix(feeds_vacuum): replace find_in_batches with in_batches

because active record query results should be a little more efficient than
itterating with map and each. Postgres can grasp such lists of ids much quicker
than ruby can.
Will probably make allmost no difference, but cannot hurt either.
This commit is contained in:
Kaspar V 2023-01-11 21:57:24 +01:00 committed by GitHub
parent a65f86ae55
commit ae62e5fa53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 25 deletions

View file

@ -9,14 +9,14 @@ class Vacuum::FeedsVacuum
private
def vacuum_inactive_home_feeds!
inactive_users.select(:id, :account_id).find_in_batches do |users|
feed_manager.clean_feeds!(:home, users.map(&:account_id))
inactive_users.select(:id, :account_id).in_batches do |users|
feed_manager.clean_feeds!(:home, users.pluck(:account_id))
end
end
def vacuum_inactive_list_feeds!
inactive_users_lists.select(:id).find_in_batches do |lists|
feed_manager.clean_feeds!(:list, lists.map(&:id))
inactive_users_lists.select(:id).in_batches do |lists|
feed_manager.clean_feeds!(:list, lists.ids)
end
end

View file

@ -19,10 +19,7 @@ class Vacuum::StatusesVacuum
# as the search index, must be handled first.
statuses.direct_visibility
.includes(mentions: :account)
.find_each do |status|
# TODO: replace temporary solution - call of private model method
status.send(:unlink_from_conversations)
end
.find_each(&:unlink_from_conversations!)
remove_from_search_index(statuses.ids) if Chewy.enabled?
# Foreign keys take care of most associated records for us.