about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-08-21 22:56:33 +0200
committerGitHub <noreply@github.com>2017-08-21 22:56:33 +0200
commitf391a4673adc6d79bb3a46b493d599a4bf6d558f (patch)
tree2476bd3bf983ff3dfb1d90da4e8fceeeab9667cb
parent143b77e10d984d3790382758c0b797215850b024 (diff)
Periodically remove expired PuSH subscribers (#4654)
-rw-r--r--app/models/subscription.rb1
-rw-r--r--app/workers/scheduler/feed_cleanup_scheduler.rb2
-rw-r--r--app/workers/scheduler/media_cleanup_scheduler.rb1
-rw-r--r--app/workers/scheduler/subscriptions_cleanup_scheduler.rb11
-rw-r--r--app/workers/scheduler/subscriptions_scheduler.rb1
-rw-r--r--config/sidekiq.yml3
6 files changed, 15 insertions, 4 deletions
diff --git a/app/models/subscription.rb b/app/models/subscription.rb
index bf643c1f9..14f1a140c 100644
--- 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
index 402eed7c6..dbebaa2c3 100644
--- 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
index a95f512be..ce32ce314 100644
--- 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
new file mode 100644
index 000000000..3b9211e81
--- /dev/null
+++ 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
index 35ecda2db..469a3d2a6 100644
--- 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
index 8273c1201..a502f5593 100644
--- 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