diff options
author | David Heinemeier Hansson <david@basecamp.com> | 2014-05-18 21:23:43 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@basecamp.com> | 2014-05-18 21:23:43 +0200 |
commit | 12705fa56894ca47de375d90e1003eb187eb7087 (patch) | |
tree | 09a5d0ef639239f8cdf5f31785645668188cb360 /lib/active_job | |
parent | ce124a19e57967cfd3a8d739346277f6c016c78f (diff) | |
parent | 68543de83612049e3254f7243b575039f102cd49 (diff) | |
download | rails-12705fa56894ca47de375d90e1003eb187eb7087.tar.gz rails-12705fa56894ca47de375d90e1003eb187eb7087.tar.bz2 rails-12705fa56894ca47de375d90e1003eb187eb7087.zip |
Merge pull request #5 from seuros/master
Add Sidekiq adapter/wrapper fixes #3
Diffstat (limited to 'lib/active_job')
-rw-r--r-- | lib/active_job/base.rb | 2 | ||||
-rw-r--r-- | lib/active_job/job_wrappers/sidekiq_wrapper.rb | 11 | ||||
-rw-r--r-- | lib/active_job/job_wrappers/sucker_punch_wrapper.rb | 11 | ||||
-rw-r--r-- | lib/active_job/queue_adapters/sidekiq_adapter.rb | 14 | ||||
-rw-r--r-- | lib/active_job/queue_adapters/sucker_punch_adapter.rb | 14 | ||||
-rw-r--r-- | lib/active_job/version.rb | 2 |
6 files changed, 53 insertions, 1 deletions
diff --git a/lib/active_job/base.rb b/lib/active_job/base.rb index 341ea6158b..6cce770466 100644 --- a/lib/active_job/base.rb +++ b/lib/active_job/base.rb @@ -1,5 +1,7 @@ require 'active_job/queue_adapters/inline_adapter' require 'active_job/queue_adapters/resque_adapter' +require 'active_job/queue_adapters/sidekiq_adapter' +require 'active_job/queue_adapters/sucker_punch_adapter' module ActiveJob class Base diff --git a/lib/active_job/job_wrappers/sidekiq_wrapper.rb b/lib/active_job/job_wrappers/sidekiq_wrapper.rb new file mode 100644 index 0000000000..fb728ae0fd --- /dev/null +++ b/lib/active_job/job_wrappers/sidekiq_wrapper.rb @@ -0,0 +1,11 @@ +module ActiveJob + module JobWrappers + class SidekiqWrapper + include Sidekiq::Worker + + def perform(job_name, *args) + job_name.constantize.perform(*args) + end + end + end +end diff --git a/lib/active_job/job_wrappers/sucker_punch_wrapper.rb b/lib/active_job/job_wrappers/sucker_punch_wrapper.rb new file mode 100644 index 0000000000..80648792ca --- /dev/null +++ b/lib/active_job/job_wrappers/sucker_punch_wrapper.rb @@ -0,0 +1,11 @@ +module ActiveJob + module JobWrappers + class SuckerPunchWrapper + include SuckerPunch::Job + + def perform(job_name, *args) + job_name.perform(*args) + end + end + end +end diff --git a/lib/active_job/queue_adapters/sidekiq_adapter.rb b/lib/active_job/queue_adapters/sidekiq_adapter.rb new file mode 100644 index 0000000000..70c4377a23 --- /dev/null +++ b/lib/active_job/queue_adapters/sidekiq_adapter.rb @@ -0,0 +1,14 @@ +require 'sidekiq' +require 'active_job/job_wrappers/sidekiq_wrapper' + +module ActiveJob + module QueueAdapters + class SidekiqAdapter + class << self + def queue(job, *args) + JobWrappers::SidekiqWrapper.perform_async(job, *args) + end + end + end + end +end diff --git a/lib/active_job/queue_adapters/sucker_punch_adapter.rb b/lib/active_job/queue_adapters/sucker_punch_adapter.rb new file mode 100644 index 0000000000..8191e5a1df --- /dev/null +++ b/lib/active_job/queue_adapters/sucker_punch_adapter.rb @@ -0,0 +1,14 @@ +require 'sucker_punch' +require 'active_job/job_wrappers/sucker_punch_wrapper' + +module ActiveJob + module QueueAdapters + class SuckerPunchAdapter + class << self + def queue(job, *args) + JobWrappers::SuckerPunchWrapper.new.async.perform(job, *args) + end + end + end + end +end diff --git a/lib/active_job/version.rb b/lib/active_job/version.rb index 0add9779d9..7e646fa3c4 100644 --- a/lib/active_job/version.rb +++ b/lib/active_job/version.rb @@ -1,7 +1,7 @@ require_relative 'gem_version' module ActiveJob - # Returns the version of the currently loaded ActiveRecord as a <tt>Gem::Version</tt> + # Returns the version of the currently loaded ActiveJob as a <tt>Gem::Version</tt> def self.version gem_version end |