]> cat aescling's git repositories - mastodon.git/commitdiff
Move clean up of unconfirmed users to sidekiq-scheduler (#4336)
authorEugen Rochko <eugen@zeonfederated.com>
Mon, 24 Jul 2017 14:17:55 +0000 (16:17 +0200)
committerGitHub <noreply@github.com>
Mon, 24 Jul 2017 14:17:55 +0000 (16:17 +0200)
* Move clean up of unconfirmed users to sidekiq-scheduler

* mastodon:daily is now deprecated

app/workers/scheduler/user_cleanup_scheduler.rb [new file with mode: 0644]
config/sidekiq.yml
lib/tasks/mastodon.rake

diff --git a/app/workers/scheduler/user_cleanup_scheduler.rb b/app/workers/scheduler/user_cleanup_scheduler.rb
new file mode 100644 (file)
index 0000000..a8f8fbd
--- /dev/null
@@ -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
index 78aaa311cf3ca7dad045a9cf0f85ab9e29535747..8273c12019275c2f1d00245996af9b8355b195ac 100644 (file)
@@ -18,3 +18,6 @@
   doorkeeper_cleanup_scheduler:
     cron: '1 1 * * 0'
     class: Scheduler::DoorkeeperCleanupScheduler
+  user_cleanup_scheduler:
+    cron: '4 5 * * *'
+    class: Scheduler::UserCleanupScheduler
index edfa3a4acea452167eaba9ad5021c5c5f7eb52da..2265235548b95143769c81c54ef7de0f520af8be 100644 (file)
@@ -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'