+++ /dev/null
-# frozen_string_literal: true
-
-class ApplicationWorker
- def info(message)
- Rails.logger.info("#{self.class.name} - #{message}")
- end
-end
# frozen_string_literal: true
-class DistributionWorker < ApplicationWorker
+class DistributionWorker
include Sidekiq::Worker
def perform(status_id)
FanOutOnWriteService.new.call(Status.find(status_id))
rescue ActiveRecord::RecordNotFound
- info("Couldn't find the status")
+ true
end
end
body = response.body.to_s
- Rails.logger.debug "Confirming PuSH subscription for #{subscription.callback_url} with challenge #{challenge}: #{body}"
+ logger.debug "Confirming PuSH subscription for #{subscription.callback_url} with challenge #{challenge}: #{body}"
if mode == 'subscribe' && body == challenge
subscription.save!
def perform(account_id)
account = Account.find(account_id)
- Rails.logger.debug "PuSH re-subscribing to #{account.acct}"
+ logger.debug "PuSH re-subscribing to #{account.acct}"
::SubscribeService.new.call(account)
end
end
include Sidekiq::Worker
def perform
- Rails.logger.debug 'Queueing PuSH re-subscriptions'
+ logger.info 'Queueing PuSH re-subscriptions'
- expiring_accounts.pluck(:id) do |id|
+ expiring_accounts.pluck(:id).each do |id|
Pubsubhubbub::SubscribeWorker.perform_async(id)
end
end
config.to_prepare do
StatsD.backend = StatsD::Instrument::Backends::NullBackend.new if ENV['STATSD_ADDR'].blank?
+ Sidekiq::Logging.logger.level = Logger::WARN
end
config.action_dispatch.default_headers = {
--- /dev/null
+require 'rails_helper'
+
+describe Scheduler::SubscriptionsScheduler do
+ subject { Scheduler::SubscriptionsScheduler.new }
+
+ let!(:expiring_account1) { Fabricate(:account, subscription_expires_at: 20.minutes.from_now, domain: 'example.com', followers_count: 1, hub_url: 'http://hub.example.com') }
+ let!(:expiring_account2) { Fabricate(:account, subscription_expires_at: 4.hours.from_now, domain: 'example.org', followers_count: 1, hub_url: 'http://hub.example.org') }
+
+ before do
+ stub_request(:post, 'http://hub.example.com/').to_return(status: 202)
+ stub_request(:post, 'http://hub.example.org/').to_return(status: 202)
+ end
+
+ it 're-subscribes for all expiring accounts' do
+ subject.perform
+ expect(a_request(:post, 'http://hub.example.com/')).to have_been_made.once
+ expect(a_request(:post, 'http://hub.example.org/')).to have_been_made.once
+ end
+end