0
0
Fork 0

Add a circuit breaker for ActivityPub deliveries (#7053)

This commit is contained in:
Eugen Rochko 2018-04-07 21:36:58 +02:00 committed by GitHub
parent 4a9becfca2
commit d4de2239b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 5 deletions

View file

@ -12,9 +12,7 @@ class ActivityPub::DeliveryWorker
@source_account = Account.find(source_account_id)
@inbox_url = inbox_url
perform_request do |response|
raise Mastodon::UnexpectedResponseError, response unless response_successful? response
end
perform_request
failure_tracker.track_success!
rescue => e
@ -30,8 +28,14 @@ class ActivityPub::DeliveryWorker
request.add_headers(HEADERS)
end
def perform_request(&block)
build_request.perform(&block)
def perform_request
light = Stoplight(@inbox_url) do
build_request.perform do |response|
raise Mastodon::UnexpectedResponseError, response unless response_successful?(response)
end
end
light.run
end
def response_successful?(response)