Handle StaleObjectError when retrieving polls (#10208)
This commit is contained in:
		
							parent
							
								
									637c952ccb
								
							
						
					
					
						commit
						09c042aa10
					
				@ -32,12 +32,17 @@ class ActivityPub::FetchRemotePollService < BaseService
 | 
				
			|||||||
    # votes, so we need to remove them
 | 
					    # votes, so we need to remove them
 | 
				
			||||||
    poll.votes.delete_all if latest_options != poll.options
 | 
					    poll.votes.delete_all if latest_options != poll.options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    poll.update!(
 | 
					    begin
 | 
				
			||||||
      last_fetched_at: Time.now.utc,
 | 
					      poll.update!(
 | 
				
			||||||
      expires_at: expires_at,
 | 
					        last_fetched_at: Time.now.utc,
 | 
				
			||||||
      options: latest_options,
 | 
					        expires_at: expires_at,
 | 
				
			||||||
      cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 }
 | 
					        options: latest_options,
 | 
				
			||||||
    )
 | 
					        cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 }
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
 | 
					    rescue ActiveRecord::StaleObjectError
 | 
				
			||||||
 | 
					      poll.reload
 | 
				
			||||||
 | 
					      retry
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user