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
Showing
- Gemfile 2 additions, 1 deletionGemfile
- Gemfile.lock 12 additions, 2 deletionsGemfile.lock
- Procfile 1 addition, 1 deletionProcfile
- Procfile.dev 1 addition, 0 deletionsProcfile.dev
- app/helpers/http_helper.rb 7 additions, 3 deletionsapp/helpers/http_helper.rb
- app/lib/tag_manager.rb 3 additions, 1 deletionapp/lib/tag_manager.rb
- app/models/account.rb 3 additions, 2 deletionsapp/models/account.rb
- app/services/follow_service.rb 1 addition, 1 deletionapp/services/follow_service.rb
- app/services/process_interaction_service.rb 1 addition, 1 deletionapp/services/process_interaction_service.rb
- app/services/subscribe_service.rb 22 additions, 6 deletionsapp/services/subscribe_service.rb
- app/services/update_remote_profile_service.rb 1 addition, 1 deletionapp/services/update_remote_profile_service.rb
- app/workers/pubsubhubbub/delivery_worker.rb 10 additions, 2 deletionsapp/workers/pubsubhubbub/delivery_worker.rb
- app/workers/pubsubhubbub/subscribe_worker.rb 13 additions, 0 deletionsapp/workers/pubsubhubbub/subscribe_worker.rb
- app/workers/scheduler/subscriptions_scheduler.rb 20 additions, 0 deletionsapp/workers/scheduler/subscriptions_scheduler.rb
- config/environments/development.rb 0 additions, 3 deletionsconfig/environments/development.rb
- config/sidekiq.yml 9 additions, 0 deletionsconfig/sidekiq.yml
- lib/tasks/mastodon.rake 2 additions, 4 deletionslib/tasks/mastodon.rake
- spec/services/follow_service_spec.rb 6 additions, 1 deletionspec/services/follow_service_spec.rb
- spec/services/subscribe_service_spec.rb 38 additions, 0 deletionsspec/services/subscribe_service_spec.rb
Loading
Please register or sign in to comment