Skip to content

Commit

Permalink
Remove delayed extensions in 7.0, fixes #5076
Browse files Browse the repository at this point in the history
  • Loading branch information
mperham committed Dec 6, 2021
1 parent 2890f81 commit 810bf75
Show file tree
Hide file tree
Showing 13 changed files with 7 additions and 456 deletions.
1 change: 0 additions & 1 deletion lib/sidekiq.rb
Expand Up @@ -8,7 +8,6 @@
require "sidekiq/worker"
require "sidekiq/job"
require "sidekiq/redis_connection"
require "sidekiq/delay"

require "json"

Expand Down
30 changes: 6 additions & 24 deletions lib/sidekiq/api.rb
Expand Up @@ -330,12 +330,7 @@ def klass
def display_class
# Unwrap known wrappers so they show up in a human-friendly manner in the Web UI
@klass ||= self["display_class"] || begin
case klass
when /\ASidekiq::Extensions::Delayed/
safe_load(args[0], klass) do |target, method, _|
"#{target}.#{method}"
end
when "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
if klass == "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
job_class = @item["wrapped"] || args[0]
if job_class == "ActionMailer::DeliveryJob" || job_class == "ActionMailer::MailDeliveryJob"
# MailerClass#mailer_method
Expand All @@ -351,12 +346,7 @@ def display_class

def display_args
# Unwrap known wrappers so they show up in a human-friendly manner in the Web UI
@display_args ||= case klass
when /\ASidekiq::Extensions::Delayed/
safe_load(args[0], args) do |_, _, arg|
arg
end
when "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
@display_args ||= if klass == "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
job_args = self["wrapped"] ? args[0]["arguments"] : []
if (self["wrapped"] || args[0]) == "ActionMailer::DeliveryJob"
# remove MailerClass, mailer_method and 'deliver_now'
Expand Down Expand Up @@ -680,12 +670,8 @@ def delete_by_jid(score, jid)
# example where I'm selecting all jobs of a certain type
# and deleting them from the schedule queue.
#
# r = Sidekiq::ScheduledSet.new
# r.select do |scheduled|
# scheduled.klass == 'Sidekiq::Extensions::DelayedClass' &&
# scheduled.args[0] == 'User' &&
# scheduled.args[1] == 'setup_new_subscriber'
# end.map(&:delete)
# See the API wiki page for usage notes and examples.
#
class ScheduledSet < JobSet
def initialize
super "schedule"
Expand All @@ -698,12 +684,8 @@ def initialize
# example where I'm selecting all jobs of a certain type
# and deleting them from the retry queue.
#
# r = Sidekiq::RetrySet.new
# r.select do |retri|
# retri.klass == 'Sidekiq::Extensions::DelayedClass' &&
# retri.args[0] == 'User' &&
# retri.args[1] == 'setup_new_subscriber'
# end.map(&:delete)
# See the API wiki page for usage notes and examples.
#
class RetrySet < JobSet
def initialize
super "retry"
Expand Down
41 changes: 0 additions & 41 deletions lib/sidekiq/delay.rb

This file was deleted.

48 changes: 0 additions & 48 deletions lib/sidekiq/extensions/action_mailer.rb

This file was deleted.

43 changes: 0 additions & 43 deletions lib/sidekiq/extensions/active_record.rb

This file was deleted.

43 changes: 0 additions & 43 deletions lib/sidekiq/extensions/class_methods.rb

This file was deleted.

33 changes: 0 additions & 33 deletions lib/sidekiq/extensions/generic_proxy.rb

This file was deleted.

20 changes: 1 addition & 19 deletions lib/sidekiq/testing.rb
Expand Up @@ -216,27 +216,12 @@ module Worker
# HardWorker.perform_async(:something)
# assert_equal 1, HardWorker.jobs.size
# assert_equal :something, HardWorker.jobs[0]['args'][0]
#
# assert_equal 0, Sidekiq::Extensions::DelayedMailer.jobs.size
# MyMailer.delay.send_welcome_email('foo@example.com')
# assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs.size
# HardWorker.jobs.clear
#
# You can also clear and drain all workers' jobs:
#
# assert_equal 0, Sidekiq::Extensions::DelayedMailer.jobs.size
# assert_equal 0, Sidekiq::Extensions::DelayedModel.jobs.size
#
# MyMailer.delay.send_welcome_email('foo@example.com')
# MyModel.delay.do_something_hard
#
# assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs.size
# assert_equal 1, Sidekiq::Extensions::DelayedModel.jobs.size
#
# Sidekiq::Worker.clear_all # or .drain_all
#
# assert_equal 0, Sidekiq::Extensions::DelayedMailer.jobs.size
# assert_equal 0, Sidekiq::Extensions::DelayedModel.jobs.size
#
# This can be useful to make sure jobs don't linger between tests:
#
# RSpec.configure do |config|
Expand Down Expand Up @@ -332,9 +317,6 @@ def jobs_for(klass)
end
end
end

Sidekiq::Extensions::DelayedMailer.extend(TestingExtensions) if defined?(Sidekiq::Extensions::DelayedMailer)
Sidekiq::Extensions::DelayedModel.extend(TestingExtensions) if defined?(Sidekiq::Extensions::DelayedModel)
end

if defined?(::Rails) && Rails.respond_to?(:env) && !Rails.env.test? && !$TESTING
Expand Down
2 changes: 0 additions & 2 deletions myapp/config/initializers/sidekiq.rb
Expand Up @@ -32,8 +32,6 @@ def perform(start)
end
end

Sidekiq::Extensions.enable_delay!

module Myapp
class Current < ActiveSupport::CurrentAttributes
attribute :tenant_id
Expand Down
9 changes: 0 additions & 9 deletions test/test_api.rb
Expand Up @@ -264,15 +264,6 @@ class WorkerWithTags
assert_nil job.enqueued_at
end

it 'unwraps delayed jobs' do
Sidekiq::Extensions.enable_delay!
Sidekiq::Queue.delay.foo(1,2,3)
q = Sidekiq::Queue.new
x = q.first
assert_equal "Sidekiq::Queue.foo", x.display_class
assert_equal [1,2,3], x.display_args
end

it 'handles previous (raw Array) error_backtrace format' do
add_retry
job = Sidekiq::RetrySet.new.first
Expand Down

0 comments on commit 810bf75

Please sign in to comment.