Browse Source

Restoring old async behaviour of thread resolving as it proved to be more robust

closed-social-glitch-2
Eugen Rochko 7 years ago
parent
commit
668013265c
3 changed files with 17 additions and 13 deletions
  1. +1
    -12
      app/services/process_feed_service.rb
  2. +1
    -1
      app/workers/pubsubhubbub/delivery_worker.rb
  3. +15
    -0
      app/workers/thread_resolve_worker.rb

+ 1
- 12
app/services/process_feed_service.rb View File

@ -122,7 +122,7 @@ class ProcessFeedService < BaseService
def find_or_resolve_status(parent, uri, url)
status = find_status(uri)
ResolveThread.new.call(parent, url) if status.nil?
ThreadResolveWorker.perform_async(parent.id, url) if status.nil?
status
end
@ -243,15 +243,4 @@ class ProcessFeedService < BaseService
"#{username}@#{domain}"
end
end
class ResolveThread
def call(child_status, parent_url)
parent_status = FetchRemoteStatusService.new.call(parent_url)
return if parent_status.nil?
child_status.thread = parent_status
child_status.save!
end
end
end

+ 1
- 1
app/workers/pubsubhubbub/delivery_worker.rb View File

@ -4,7 +4,7 @@ class Pubsubhubbub::DeliveryWorker
include Sidekiq::Worker
include RoutingHelper
sidekiq_options queue: 'push'
sidekiq_options queue: 'push', retry: 5
def perform(subscription_id, payload)
subscription = Subscription.find(subscription_id)

+ 15
- 0
app/workers/thread_resolve_worker.rb View File

@ -0,0 +1,15 @@
# frozen_string_literal: true
class ThreadResolveWorker
include Sidekiq::Worker
def perform(child_status_id, parent_url)
child_status = Status.find(child_status_id)
parent_status = FetchRemoteStatusService.new.call(parent_url)
return if parent_status.nil?
child_status.thread = parent_status
child_status.save!
end
end

Loading…
Cancel
Save