123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # frozen_string_literal: true
- class UnmergeWorker
- include Sidekiq::Worker
- include DatabaseHelper
- sidekiq_options queue: 'pull'
- def perform(from_account_id, into_id, type = 'home')
- with_primary do
- @from_account = Account.find(from_account_id)
- end
- case type
- when 'home'
- unmerge_from_home!(into_id)
- when 'list'
- unmerge_from_list!(into_id)
- end
- rescue ActiveRecord::RecordNotFound
- true
- end
- private
- def unmerge_from_home!(into_account_id)
- with_primary do
- @into_account = Account.find(into_account_id)
- end
- with_read_replica do
- FeedManager.instance.unmerge_from_home(@from_account, @into_account)
- end
- end
- def unmerge_from_list!(into_list_id)
- with_primary do
- @into_list = List.find(into_list_id)
- end
- with_read_replica do
- FeedManager.instance.unmerge_from_list(@from_account, @into_list)
- end
- end
- end
|