Fix background jobs not using locks like they are supposed to (#13361)

Also:

- Fix locks not being removed when jobs go to the dead job queue
- Add UI for managing locks to the Sidekiq dashboard
- Remove unused Sidekiq workers

Fix #13349
This commit is contained in:
Eugen Rochko 2020-03-31 21:59:03 +02:00 committed by GitHub
parent 1fb92037e4
commit 9014367bd8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 23 additions and 152 deletions

View file

@ -3,7 +3,7 @@
class Scheduler::BackupCleanupScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
old_backups.reorder(nil).find_each(&:destroy!)

View file

@ -3,7 +3,7 @@
class Scheduler::DoorkeeperCleanupScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
Doorkeeper::AccessToken.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all

View file

@ -3,7 +3,7 @@
class Scheduler::EmailScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
FREQUENCY = 7.days.freeze
SIGN_IN_OFFSET = 1.day.freeze

View file

@ -4,7 +4,7 @@ class Scheduler::FeedCleanupScheduler
include Sidekiq::Worker
include Redisable
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
clean_home_feeds!

View file

@ -5,7 +5,7 @@ class Scheduler::IpCleanupScheduler
RETENTION_PERIOD = 1.year
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
time_ago = RETENTION_PERIOD.ago

View file

@ -3,7 +3,7 @@
class Scheduler::MediaCleanupScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
unattached_media.find_each(&:destroy)

View file

@ -3,7 +3,7 @@
class Scheduler::PgheroScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
PgHero.capture_space_stats

View file

@ -3,7 +3,7 @@
class Scheduler::ScheduledStatusesScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
publish_scheduled_statuses!

View file

@ -1,9 +0,0 @@
# frozen_string_literal: true
class Scheduler::SubscriptionsCleanupScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
def perform; end
end

View file

@ -1,9 +0,0 @@
# frozen_string_literal: true
class Scheduler::SubscriptionsScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
def perform; end
end

View file

@ -3,7 +3,7 @@
class Scheduler::TrendingTagsScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
TrendingTags.update! if Setting.trends

View file

@ -3,7 +3,7 @@
class Scheduler::UserCleanupScheduler
include Sidekiq::Worker
sidekiq_options unique: :until_executed, retry: 0
sidekiq_options lock: :until_executed, retry: 0
def perform
User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).reorder(nil).find_in_batches do |batch|