Change feed merge, unmerge and regeneration workers to use a replica (#25849)
parent
610cf6c371
commit
a1f5188c8c
|
@ -5,7 +5,14 @@ class MergeWorker
|
||||||
include Redisable
|
include Redisable
|
||||||
|
|
||||||
def perform(from_account_id, into_account_id)
|
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
|
rescue ActiveRecord::RecordNotFound
|
||||||
true
|
true
|
||||||
ensure
|
ensure
|
||||||
|
|
|
@ -6,8 +6,13 @@ class RegenerationWorker
|
||||||
sidekiq_options lock: :until_executed
|
sidekiq_options lock: :until_executed
|
||||||
|
|
||||||
def perform(account_id, _ = :home)
|
def perform(account_id, _ = :home)
|
||||||
account = Account.find(account_id)
|
ApplicationRecord.connected_to(role: :primary) do
|
||||||
PrecomputeFeedService.new.call(account)
|
@account = Account.find(account_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
ApplicationRecord.connected_to(role: :read, prevent_writes: true) do
|
||||||
|
PrecomputeFeedService.new.call(@account)
|
||||||
|
end
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,14 @@ class UnmergeWorker
|
||||||
sidekiq_options queue: 'pull'
|
sidekiq_options queue: 'pull'
|
||||||
|
|
||||||
def perform(from_account_id, into_account_id)
|
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
|
rescue ActiveRecord::RecordNotFound
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
Reference in New Issue