Handle StaleObjectError when retrieving polls (#10208)
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…
Reference in New Issue