More robust PuSH subscription refreshes (#2799)

* Fix #2473 - Use sidekiq scheduler to refresh PuSH subscriptions instead of cron

Fix an issue where / in domain would raise exception in TagManager#normalize_domain

PuSH subscriptions refresh done in a round-robin way to avoid hammering a single
server's hub in sequence. Correct handling of failures/retries through Sidekiq (see
also #2613). Optimize Account#with_followers scope. Also, since subscriptions
are now delegated to Sidekiq jobs, an uncaught exception will not stop the entire
refreshing operation halfway through

Fix #2702 - Correct user agent header on outgoing http requests

* Add test for SubscribeService

* Extract #expiring_accounts into method

* Make mastodon:push:refresh no-op

* Queues are now defined in sidekiq.yml

* Queues are now in sidekiq.yml
This commit is contained in:
Eugen Rochko 2017-05-05 02:23:01 +02:00 committed by GitHub
parent 61c33652ad
commit 81584779cb
19 changed files with 152 additions and 29 deletions

View file

@ -143,6 +143,8 @@ GEM
thread_safe
encryptor (3.0.0)
erubis (2.7.0)
et-orbi (1.0.3)
tzinfo
execjs (2.7.0)
fabrication (2.16.1)
faker (1.7.3)
@ -251,7 +253,7 @@ GEM
oj (3.0.5)
openssl (2.0.3)
orm_adapter (0.5.0)
ostatus2 (1.1.0)
ostatus2 (2.0.0)
addressable (~> 2.4)
http (~> 2.0)
nokogiri (~> 1.6)
@ -386,6 +388,8 @@ GEM
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-oembed (0.12.0)
ruby-progressbar (1.8.1)
rufus-scheduler (3.4.0)
et-orbi (~> 1.0)
safe_yaml (1.0.4)
sanitize (4.4.0)
crass (~> 1.0.2)
@ -396,6 +400,11 @@ GEM
connection_pool (~> 2.2, >= 2.2.0)
rack-protection (>= 1.5.0)
redis (~> 3.3, >= 3.3.3)
sidekiq-scheduler (2.1.4)
redis (~> 3)
rufus-scheduler (~> 3.2)
sidekiq (>= 3)
tilt (>= 1.4.0)
sidekiq-unique-jobs (5.0.7)
sidekiq (>= 4.0, <= 6.0)
thor (~> 0)
@ -499,7 +508,7 @@ DEPENDENCIES
microformats2
nokogiri
oj
ostatus2 (~> 1.1)
ostatus2 (~> 2.0)
ox
paperclip (~> 5.1)
paperclip-av-transcoder
@ -527,6 +536,7 @@ DEPENDENCIES
ruby-oembed
sanitize
sidekiq
sidekiq-scheduler
sidekiq-unique-jobs
simple-navigation
simple_form