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
 | 
			
		||||
    poll.votes.delete_all if latest_options != poll.options
 | 
			
		||||
 | 
			
		||||
    poll.update!(
 | 
			
		||||
      last_fetched_at: Time.now.utc,
 | 
			
		||||
      expires_at: expires_at,
 | 
			
		||||
      options: latest_options,
 | 
			
		||||
      cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 }
 | 
			
		||||
    )
 | 
			
		||||
    begin
 | 
			
		||||
      poll.update!(
 | 
			
		||||
        last_fetched_at: Time.now.utc,
 | 
			
		||||
        expires_at: expires_at,
 | 
			
		||||
        options: latest_options,
 | 
			
		||||
        cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 }
 | 
			
		||||
      )
 | 
			
		||||
    rescue ActiveRecord::StaleObjectError
 | 
			
		||||
      poll.reload
 | 
			
		||||
      retry
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user