commit: f391a4673adc6d79bb3a46b493d599a4bf6d558f
parent: 143b77e10d984d3790382758c0b797215850b024
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Mon, 21 Aug 2017 22:56:33 +0200
Periodically remove expired PuSH subscribers (#4654)
Diffstat:
6 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/app/models/subscription.rb b/app/models/subscription.rb
@@ -26,6 +26,7 @@ class Subscription < ApplicationRecord
scope :confirmed, -> { where(confirmed: true) }
scope :future_expiration, -> { where(arel_table[:expires_at].gt(Time.now.utc)) }
+ scope :expired, -> { where(arel_table[:expires_at].lt(Time.now.utc)) }
scope :active, -> { confirmed.future_expiration }
def lease_seconds=(value)
diff --git a/app/workers/scheduler/feed_cleanup_scheduler.rb b/app/workers/scheduler/feed_cleanup_scheduler.rb
@@ -5,8 +5,6 @@ class Scheduler::FeedCleanupScheduler
include Sidekiq::Worker
def perform
- logger.info 'Cleaning out home feeds of inactive users'
-
redis.pipelined do
inactive_users.pluck(:account_id).each do |account_id|
redis.del(FeedManager.instance.key(:home, account_id))
diff --git a/app/workers/scheduler/media_cleanup_scheduler.rb b/app/workers/scheduler/media_cleanup_scheduler.rb
@@ -5,7 +5,6 @@ class Scheduler::MediaCleanupScheduler
include Sidekiq::Worker
def perform
- logger.info 'Cleaning out unattached media attachments'
unattached_media.find_each(&:destroy)
end
diff --git a/app/workers/scheduler/subscriptions_cleanup_scheduler.rb b/app/workers/scheduler/subscriptions_cleanup_scheduler.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require 'sidekiq-scheduler'
+
+class Scheduler::SubscriptionsCleanupScheduler
+ include Sidekiq::Worker
+
+ def perform
+ Subscription.expired.in_batches.delete_all
+ end
+end
diff --git a/app/workers/scheduler/subscriptions_scheduler.rb b/app/workers/scheduler/subscriptions_scheduler.rb
@@ -7,7 +7,6 @@ class Scheduler::SubscriptionsScheduler
include Sidekiq::Worker
def perform
- logger.info 'Queueing PuSH re-subscriptions'
Pubsubhubbub::SubscribeWorker.push_bulk(expiring_accounts.pluck(:id))
end
diff --git a/config/sidekiq.yml b/config/sidekiq.yml
@@ -21,3 +21,6 @@
user_cleanup_scheduler:
cron: '4 5 * * *'
class: Scheduler::UserCleanupScheduler
+ subscriptions_cleanup_scheduler:
+ cron: '2 2 * * 0'
+ class: Scheduler::SubscriptionsCleanupScheduler