Change feed merge, unmerge and regeneration workers to use a replica (#25849)
This commit is contained in:
		
					parent
					
						
							
								610cf6c371
							
						
					
				
			
			
				commit
				
					
						a1f5188c8c
					
				
			
		
					 3 changed files with 23 additions and 4 deletions
				
			
		|  | @ -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 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue