This commit is contained in:
Shlee 2026-06-09 09:11:53 +00:00 committed by GitHub
commit fdae14688f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 3 deletions

View File

@ -3,6 +3,7 @@
class ActivityPub::Activity::Create < ActivityPub::Activity
DISTRIBUTE_DELAY = 1.minute
PROCESSING_DELAY = (30.seconds)..(10.minutes)
PROCESSING_DELAY_QUOTE = (30.seconds)..(1.minute)
def perform
@account.schedule_refresh_if_stale!
@ -407,8 +408,9 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
embedded_quote = safe_prefetched_embed(@account, @status_parser.quoted_object, @json['context'])
ActivityPub::VerifyQuoteService.new.call(@quote, @quote_approval_uri, fetchable_quoted_uri: @quote_uri, prefetched_quoted_object: embedded_quote, request_id: @options[:request_id], depth: @options[:depth])
rescue Mastodon::RecursionLimitExceededError, Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS
ActivityPub::RefetchAndVerifyQuoteWorker.perform_in(rand(PROCESSING_DELAY), @quote.id, @quote_uri, { 'request_id' => @options[:request_id], 'approval_uri' => @quote_approval_uri })
rescue Mastodon::RecursionLimitExceededError, Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS => e
Rails.logger.warn "Quote verification failed: Quote ID #{@quote.id} (status ID #{@quote.status_id}, uri #{@quote_uri}): #{e.class} - #{e.message}. Scheduling retry."
ActivityPub::RefetchAndVerifyQuoteWorker.perform_in(rand(PROCESSING_DELAY_QUOTE), @quote.id, @quote_uri, { 'request_id' => @options[:request_id], 'approval_uri' => @quote_approval_uri })
end
def conversation_from_uri(uri)

View File

@ -5,7 +5,7 @@ class ActivityPub::RefetchAndVerifyQuoteWorker
include ExponentialBackoff
include JsonLdHelper
sidekiq_options queue: 'pull', retry: 5
sidekiq_options queue: 'ingress', retry: 5
def perform(quote_id, quoted_uri, options = {})
quote = Quote.find(quote_id)