logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 467456f7a19371fe4d50f25751a1d32a63e9f75c
parent: 2374d63536fd9459243a235763c87f8e9fdfc581
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Mon, 24 Jul 2017 16:17:55 +0200

Move clean up of unconfirmed users to sidekiq-scheduler (#4336)

* Move clean up of unconfirmed users to sidekiq-scheduler

* mastodon:daily is now deprecated

Diffstat:

Aapp/workers/scheduler/user_cleanup_scheduler.rb13+++++++++++++
Mconfig/sidekiq.yml3+++
Mlib/tasks/mastodon.rake24++++++------------------
3 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/app/workers/scheduler/user_cleanup_scheduler.rb b/app/workers/scheduler/user_cleanup_scheduler.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true +require 'sidekiq-scheduler' + +class Scheduler::UserCleanupScheduler + include Sidekiq::Worker + + def perform + User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).find_in_batches do |batch| + Account.where(id: batch.map(&:account_id)).delete_all + User.where(id: batch.map(&:id)).delete_all + end + end +end diff --git a/config/sidekiq.yml b/config/sidekiq.yml @@ -18,3 +18,6 @@ doorkeeper_cleanup_scheduler: cron: '1 1 * * 0' class: Scheduler::DoorkeeperCleanupScheduler + user_cleanup_scheduler: + cron: '4 5 * * *' + class: Scheduler::UserCleanupScheduler diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake @@ -1,18 +1,10 @@ # frozen_string_literal: true namespace :mastodon do - desc 'Execute daily tasks' + desc 'Execute daily tasks (deprecated)' task :daily do - %w( - mastodon:feeds:clear - mastodon:media:clear - mastodon:users:clear - mastodon:push:refresh - ).each do |task| - puts "Starting #{task} at #{Time.now.utc}" - Rake::Task[task].invoke - end - puts "Completed daily tasks at #{Time.now.utc}" + # No-op + # All of these tasks are now executed via sidekiq-scheduler end desc 'Turn a user into an admin, identified by the USERNAME environment variable' @@ -162,14 +154,10 @@ namespace :mastodon do end namespace :users do - desc 'Clear out unconfirmed users' + desc 'Clear out unconfirmed users (deprecated)' task clear: :environment do - # Users that never confirmed e-mail never signed in, means they - # only have a user record and an avatar record, with no files uploaded - User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).find_in_batches do |batch| - Account.where(id: batch.map(&:account_id)).delete_all - User.where(id: batch.map(&:id)).delete_all - end + # No-op + # This task is now executed via sidekiq-scheduler end desc 'List e-mails of all admin users'