media_attached_status_ids = MediaAttachment.where(status_id: status_ids).pluck(:status_id)
ApplicationRecord.transaction do
- Status.where(id: media_attached_status_ids).find_each do |status|
+ Status.where(id: media_attached_status_ids).reorder(nil).find_each do |status|
status.update!(sensitive: sensitive)
log_action :update, status
end
end
def delete_statuses
- Status.where(id: status_ids).find_each do |status|
+ Status.where(id: status_ids).reorder(nil).find_each do |status|
RemovalWorker.perform_async(status.id)
log_action :destroy, status
end
private
def reject_existing_followers!
- @account.passive_relationships.where(account: Account.where(domain: @domain)).includes(:account).find_each do |follow|
+ @account.passive_relationships.where(account: Account.where(domain: @domain)).includes(:account).reorder(nil).find_each do |follow|
reject_follow!(follow)
end
end
def reject_pending_follow_requests!
- FollowRequest.where(target_account: @account).where(account: Account.where(domain: @domain)).includes(:account).find_each do |follow_request|
+ FollowRequest.where(target_account: @account).where(account: Account.where(domain: @domain)).includes(:account).reorder(nil).find_each do |follow_request|
reject_follow!(follow_request)
end
end
def build_json!
@collection = serialize(collection_presenter, ActivityPub::CollectionSerializer)
- account.statuses.with_includes.find_in_batches do |statuses|
+ account.statuses.with_includes.reorder(nil).find_in_batches do |statuses|
statuses.each do |status|
item = serialize(status, ActivityPub::ActivitySerializer)
item.delete(:'@context')
end
def dump_media_attachments!(tar)
- MediaAttachment.attached.where(account: account).find_in_batches do |media_attachments|
+ MediaAttachment.attached.where(account: account).reorder(nil).find_in_batches do |media_attachments|
media_attachments.each do |m|
download_to_tar(tar, m.file, m.file.path)
end
end
def suspend_accounts!
- blocked_domain_accounts.where(suspended: false).find_each do |account|
+ blocked_domain_accounts.where(suspended: false).reorder(nil).find_each do |account|
UnsubscribeService.new.call(account) if account.subscribed?
SuspendAccountService.new.call(account)
end
end
def clear_account_images!
- blocked_domain_accounts.find_each do |account|
+ blocked_domain_accounts.reorder(nil).find_each do |account|
account.avatar.destroy if account.avatar.exists?
account.header.destroy if account.header.exists?
account.save
end
def clear_account_attachments!
- media_from_blocked_domain.find_each do |attachment|
+ media_from_blocked_domain.reorder(nil).find_each do |attachment|
@affected_status_ids << attachment.status_id if attachment.status_id.present?
attachment.file.destroy if attachment.file.exists?
end
def remove_from_followers
- @account.followers_for_local_distribution.find_each do |follower|
+ @account.followers_for_local_distribution.reorder(nil).find_each do |follower|
FeedManager.instance.unpush_from_home(follower, @status)
end
end
def remove_from_lists
- @account.lists_for_local_distribution.select(:id, :account_id).find_each do |list|
+ @account.lists_for_local_distribution.select(:id, :account_id).reorder(nil).find_each do |list|
FeedManager.instance.unpush_from_list(list, @status)
end
end
target_account = Account.find(target_account_id)
return unless target_account.protocol == :activitypub
- target_account.followers.where(domain: nil).find_each do |follower|
+ target_account.followers.where(domain: nil).reorder(nil).find_each do |follower|
# Locally unfollow remote account
follower.unfollow!(target_account)
sidekiq_options unique: :until_executed
def perform
- old_backups.find_each(&:destroy!)
+ old_backups.reorder(nil).find_each(&:destroy!)
end
private
sidekiq_options unique: :until_executed
def perform
- eligible_users.find_each do |user|
+ eligible_users.reorder(nil).find_each do |user|
next unless user.allows_digest_emails?
DigestMailerWorker.perform_async(user.id)
end
sidekiq_options unique: :until_executed
def perform
- User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).find_in_batches do |batch|
+ User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).reorder(nil).find_in_batches do |batch|
Account.where(id: batch.map(&:account_id)).delete_all
User.where(id: batch.map(&:id)).delete_all
end
desc 'Remove media attachments attributed to silenced accounts'
task remove_silenced: :environment do
nb_media_attachments = 0
- MediaAttachment.where(account: Account.silenced).select(:id).find_in_batches do |media_attachments|
+ MediaAttachment.where(account: Account.silenced).select(:id).reorder(nil).find_in_batches do |media_attachments|
nb_media_attachments += media_attachments.length
Maintenance::DestroyMediaWorker.push_bulk(media_attachments.map(&:id))
end
time_ago = ENV.fetch('NUM_DAYS') { 7 }.to_i.days.ago
nb_media_attachments = 0
- MediaAttachment.where.not(remote_url: '').where.not(file_file_name: nil).where('created_at < ?', time_ago).select(:id).find_in_batches do |media_attachments|
+ MediaAttachment.where.not(remote_url: '').where.not(file_file_name: nil).where('created_at < ?', time_ago).select(:id).reorder(nil).find_in_batches do |media_attachments|
nb_media_attachments += media_attachments.length
Maintenance::UncacheMediaWorker.push_bulk(media_attachments.map(&:id))
end
accounts = accounts.where(domain: ENV['DOMAIN']) if ENV['DOMAIN'].present?
nb_accounts = 0
- accounts.select(:id).find_in_batches do |accounts_batch|
+ accounts.select(:id).reorder(nil).find_in_batches do |accounts_batch|
nb_accounts += accounts_batch.length
Maintenance::RedownloadAccountMediaWorker.push_bulk(accounts_batch.map(&:id))
end
desc 'Generates home timelines for users who logged in in the past two weeks'
task build: :environment do
- User.active.select(:id, :account_id).find_in_batches do |users|
+ User.active.select(:id, :account_id).reorder(nil).find_in_batches do |users|
RegenerationWorker.push_bulk(users.map(&:account_id))
end
end