]> cat aescling's git repositories - mastodon.git/commitdiff
Keep scheduler jobs unique until they're done (#8287)
authorEugen Rochko <eugen@zeonfederated.com>
Sun, 19 Aug 2018 13:48:29 +0000 (15:48 +0200)
committerGitHub <noreply@github.com>
Sun, 19 Aug 2018 13:48:29 +0000 (15:48 +0200)
app/workers/scheduler/backup_cleanup_scheduler.rb
app/workers/scheduler/doorkeeper_cleanup_scheduler.rb
app/workers/scheduler/email_scheduler.rb
app/workers/scheduler/feed_cleanup_scheduler.rb
app/workers/scheduler/ip_cleanup_scheduler.rb
app/workers/scheduler/media_cleanup_scheduler.rb
app/workers/scheduler/subscriptions_cleanup_scheduler.rb
app/workers/scheduler/subscriptions_scheduler.rb
app/workers/scheduler/user_cleanup_scheduler.rb

index 5ab16c057da02defa504529ecf8a962fba09f29a..cfdf6f4af684c0c1ae70f60b4ff6ab939f4c976d 100644 (file)
@@ -3,6 +3,8 @@
 class Scheduler::BackupCleanupScheduler
   include Sidekiq::Worker
 
+  sidekiq_options unique: :until_executed
+
   def perform
     old_backups.find_each(&:destroy!)
   end
index bab4ae8869b4dad834725e507750daadbc437581..fec08c6bc38510ec8a71e863bd13c850eb4d7eb4 100644 (file)
@@ -3,6 +3,8 @@
 class Scheduler::DoorkeeperCleanupScheduler
   include Sidekiq::Worker
 
+  sidekiq_options unique: :until_executed
+
   def perform
     Doorkeeper::AccessToken.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all
     Doorkeeper::AccessGrant.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all
index 36866061b235b9ec4667f6f1e252dbb55e256be3..1a5a1c826fbbbf34139a1c5bd4a3ac5294ebe82a 100644 (file)
@@ -3,6 +3,8 @@
 class Scheduler::EmailScheduler
   include Sidekiq::Worker
 
+  sidekiq_options unique: :until_executed
+
   def perform
     eligible_users.find_each do |user|
       next unless user.allows_digest_emails?
index 42cf14128f2eec34b75dfcf734715a166d42f034..b02bac8837574587fd015741776abb6a47bd058a 100644 (file)
@@ -3,6 +3,8 @@
 class Scheduler::FeedCleanupScheduler
   include Sidekiq::Worker
 
+  sidekiq_options unique: :until_executed
+
   def perform
     clean_home_feeds!
     clean_list_feeds!
index 613a5e336d5e9079875bc26fabf3bc8ec2c4d7cb..6bb93df7d146dfc63897fc6e2cf96f7d2c1658a0 100644 (file)
@@ -5,6 +5,8 @@ class Scheduler::IpCleanupScheduler
 
   RETENTION_PERIOD = 1.year
 
+  sidekiq_options unique: :until_executed
+
   def perform
     time_ago = RETENTION_PERIOD.ago
     SessionActivation.where('updated_at < ?', time_ago).destroy_all
index c35686fcb908b209d7de4905e25b537af1106b61..a27e02953bb349791d5d4202bab0486b43fc1fcf 100644 (file)
@@ -3,6 +3,8 @@
 class Scheduler::MediaCleanupScheduler
   include Sidekiq::Worker
 
+  sidekiq_options unique: :until_executed
+
   def perform
     unattached_media.find_each(&:destroy)
   end
index af2ae3120145127ffea83b012fd6cecd610adce3..06ba662051cccd2ea04409ef6fad49b3f28f9218 100644 (file)
@@ -3,6 +3,8 @@
 class Scheduler::SubscriptionsCleanupScheduler
   include Sidekiq::Worker
 
+  sidekiq_options unique: :until_executed
+
   def perform
     Subscription.expired.in_batches.delete_all
   end
index dc16e85c228d0b28da129f72e9f90570b7c763ac..4b0959af20b482c0152de1c672d938674ae9064c 100644 (file)
@@ -3,6 +3,8 @@
 class Scheduler::SubscriptionsScheduler
   include Sidekiq::Worker
 
+  sidekiq_options unique: :until_executed
+
   def perform
     Pubsubhubbub::SubscribeWorker.push_bulk(expiring_accounts.pluck(:id))
   end
index 245536ceac91d4bf6942b9e2905bf4fe9467f738..dde195bff601a9dd4d348f8f475e656211651486 100644 (file)
@@ -3,6 +3,8 @@
 class Scheduler::UserCleanupScheduler
   include Sidekiq::Worker
 
+  sidekiq_options unique: :until_executed
+
   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