M app/workers/merge_worker.rb => app/workers/merge_worker.rb +8 -1
@@ 5,7 5,14 @@ class MergeWorker
include Redisable
def perform(from_account_id, into_account_id)
- FeedManager.instance.merge_into_home(Account.find(from_account_id), Account.find(into_account_id))
+ ApplicationRecord.connected_to(role: :primary) do
+ @from_account = Account.find(from_account_id)
+ @into_account = Account.find(into_account_id)
+ end
+
+ ApplicationRecord.connected_to(role: :read, prevent_writes: true) do
+ FeedManager.instance.merge_into_home(@from_account, @into_account)
+ end
rescue ActiveRecord::RecordNotFound
true
ensure
M app/workers/regeneration_worker.rb => app/workers/regeneration_worker.rb +7 -2
@@ 6,8 6,13 @@ class RegenerationWorker
sidekiq_options lock: :until_executed
def perform(account_id, _ = :home)
- account = Account.find(account_id)
- PrecomputeFeedService.new.call(account)
+ ApplicationRecord.connected_to(role: :primary) do
+ @account = Account.find(account_id)
+ end
+
+ ApplicationRecord.connected_to(role: :read, prevent_writes: true) do
+ PrecomputeFeedService.new.call(@account)
+ end
rescue ActiveRecord::RecordNotFound
true
end
M app/workers/unmerge_worker.rb => app/workers/unmerge_worker.rb +8 -1
@@ 6,7 6,14 @@ class UnmergeWorker
sidekiq_options queue: 'pull'
def perform(from_account_id, into_account_id)
- FeedManager.instance.unmerge_from_home(Account.find(from_account_id), Account.find(into_account_id))
+ ApplicationRecord.connected_to(role: :primary) do
+ @from_account = Account.find(from_account_id)
+ @into_account = Account.find(into_account_id)
+ end
+
+ ApplicationRecord.connected_to(role: :read, prevent_writes: true) do
+ FeedManager.instance.unmerge_from_home(@from_account, @into_account)
+ end
rescue ActiveRecord::RecordNotFound
true
end