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)
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))
include Sidekiq::Worker
def perform
- logger.info 'Cleaning out unattached media attachments'
unattached_media.find_each(&:destroy)
end
--- /dev/null
+# frozen_string_literal: true
+
+require 'sidekiq-scheduler'
+
+class Scheduler::SubscriptionsCleanupScheduler
+ include Sidekiq::Worker
+
+ def perform
+ Subscription.expired.in_batches.delete_all
+ end
+end
include Sidekiq::Worker
def perform
- logger.info 'Queueing PuSH re-subscriptions'
Pubsubhubbub::SubscribeWorker.push_bulk(expiring_accounts.pluck(:id))
end
user_cleanup_scheduler:
cron: '4 5 * * *'
class: Scheduler::UserCleanupScheduler
+ subscriptions_cleanup_scheduler:
+ cron: '2 2 * * 0'
+ class: Scheduler::SubscriptionsCleanupScheduler