Chatwoot/app/jobs/migration/remove_stale_notifications_job.rb
Sojan Jose ecb1f57efe
chore: Improve memory usage in RemoveStaleNotificationsJob (#5271)
The job we introduced recently for removing the stale migrations would time out in instances with a large amount of deleted data.
So improving it for better memory utilization.
2022-08-15 19:58:42 +05:30

19 lines
486 B
Ruby

# Delete migration and spec after 2 consecutive releases.
class Migration::RemoveStaleNotificationsJob < ApplicationJob
queue_as :scheduled_jobs
def perform
remove_invalid_messages
end
private
def remove_invalid_messages
deleted_ids = []
Message.unscoped.distinct.pluck(:inbox_id).each_slice(1000) do |id_list|
deleted_ids = (id_list - Inbox.where(id: id_list).pluck(:id))
Message.where(inbox_id: deleted_ids.flatten).destroy_all
end
end
end