forked from fedi/mastodon
Move PubSubHubbub pinging to a background worker
It can take as much as 0.5s if not longer to complete
This commit is contained in:
parent
2febc6ed65
commit
3319473b2c
|
@ -5,7 +5,7 @@ class FavouriteService < BaseService
|
|||
# @return [Favourite]
|
||||
def call(account, status)
|
||||
favourite = Favourite.create!(account: account, status: status)
|
||||
account.ping!(account_url(account, format: 'atom'), [Rails.configuration.x.hub_url])
|
||||
HubPingWorker.perform_async(account.id)
|
||||
|
||||
if status.local?
|
||||
NotificationMailer.favourite(status, account).deliver_later unless status.account.blocking?(account)
|
||||
|
|
|
@ -17,7 +17,7 @@ class FollowService < BaseService
|
|||
end
|
||||
|
||||
merge_into_timeline(target_account, source_account)
|
||||
source_account.ping!(account_url(source_account, format: 'atom'), [Rails.configuration.x.hub_url])
|
||||
HubPingWorker.perform_async(source_account.id)
|
||||
follow
|
||||
end
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ class PostStatusService < BaseService
|
|||
attach_media(status, media_ids)
|
||||
process_mentions_service.call(status)
|
||||
DistributionWorker.perform_async(status.id)
|
||||
account.ping!(account_url(account, format: 'atom'), [Rails.configuration.x.hub_url])
|
||||
HubPingWorker.perform_async(account.id)
|
||||
status
|
||||
end
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ class ReblogService < BaseService
|
|||
def call(account, reblogged_status)
|
||||
reblog = account.statuses.create!(reblog: reblogged_status, text: '')
|
||||
DistributionWorker.perform_async(reblog.id)
|
||||
account.ping!(account_url(account, format: 'atom'), [Rails.configuration.x.hub_url])
|
||||
HubPingWorker.perform_async(account.id)
|
||||
|
||||
if reblogged_status.local?
|
||||
NotificationMailer.reblog(reblogged_status, account).deliver_later unless reblogged_status.account.blocking?(account)
|
||||
|
|
9
app/workers/hub_ping_worker.rb
Normal file
9
app/workers/hub_ping_worker.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
class HubPingWorker
|
||||
include Sidekiq::Worker
|
||||
include RoutingHelper
|
||||
|
||||
def perform(account_id)
|
||||
account = Account.find(account_id)
|
||||
account.ping!(account_url(account, format: 'atom'), [Rails.configuration.x.hub_url])
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue