Skip to content

Commit

Permalink
Change feed merge, unmerge and regeneration workers to use a replica (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
Gargron committed Jul 10, 2023
1 parent 610cf6c commit a1f5188
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
9 changes: 8 additions & 1 deletion app/workers/merge_worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 7 additions & 2 deletions app/workers/regeneration_worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 8 additions & 1 deletion app/workers/unmerge_worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit a1f5188

Please sign in to comment.