Move clean up of unconfirmed users to sidekiq-scheduler (#4336)
* Move clean up of unconfirmed users to sidekiq-scheduler * mastodon:daily is now deprecated
This commit is contained in:
		
							parent
							
								
									2374d63536
								
							
						
					
					
						commit
						467456f7a1
					
				|  | @ -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 | ||||||
|  | @ -18,3 +18,6 @@ | ||||||
|   doorkeeper_cleanup_scheduler: |   doorkeeper_cleanup_scheduler: | ||||||
|     cron: '1 1 * * 0' |     cron: '1 1 * * 0' | ||||||
|     class: Scheduler::DoorkeeperCleanupScheduler |     class: Scheduler::DoorkeeperCleanupScheduler | ||||||
|  |   user_cleanup_scheduler: | ||||||
|  |     cron: '4 5 * * *' | ||||||
|  |     class: Scheduler::UserCleanupScheduler | ||||||
|  |  | ||||||
|  | @ -1,18 +1,10 @@ | ||||||
| # frozen_string_literal: true | # frozen_string_literal: true | ||||||
| 
 | 
 | ||||||
| namespace :mastodon do | namespace :mastodon do | ||||||
|   desc 'Execute daily tasks' |   desc 'Execute daily tasks (deprecated)' | ||||||
|   task :daily do |   task :daily do | ||||||
|     %w( |     # No-op | ||||||
|       mastodon:feeds:clear |     # All of these tasks are now executed via sidekiq-scheduler | ||||||
|       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}" |  | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   desc 'Turn a user into an admin, identified by the USERNAME environment variable' |   desc 'Turn a user into an admin, identified by the USERNAME environment variable' | ||||||
|  | @ -162,14 +154,10 @@ namespace :mastodon do | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   namespace :users do |   namespace :users do | ||||||
|     desc 'Clear out unconfirmed users' |     desc 'Clear out unconfirmed users (deprecated)' | ||||||
|     task clear: :environment do |     task clear: :environment do | ||||||
|       # Users that never confirmed e-mail never signed in, means they |       # No-op | ||||||
|       # only have a user record and an avatar record, with no files uploaded |       # This task is now executed via sidekiq-scheduler | ||||||
|       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 | ||||||
| 
 | 
 | ||||||
|     desc 'List e-mails of all admin users' |     desc 'List e-mails of all admin users' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue