Change feed merge, unmerge and regeneration workers to use a replica (#25849)
parent
610cf6c371
commit
a1f5188c8c
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Reference in New Issue