diff options
Diffstat (limited to 'lib/active_job/queue_adapters/resque_adapter.rb')
-rw-r--r-- | lib/active_job/queue_adapters/resque_adapter.rb | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/lib/active_job/queue_adapters/resque_adapter.rb b/lib/active_job/queue_adapters/resque_adapter.rb index 43a44d2a48..c1e4000283 100644 --- a/lib/active_job/queue_adapters/resque_adapter.rb +++ b/lib/active_job/queue_adapters/resque_adapter.rb @@ -1,12 +1,33 @@ require 'resque' -require 'active_job/job_wrappers/resque_wrapper' +require 'active_support/core_ext/enumerable' +require 'active_support/core_ext/array/access' module ActiveJob module QueueAdapters class ResqueAdapter class << self def queue(job, *args) - Resque.enqueue *JobWrappers::ResqueWrapper.wrap(job, args) + Resque.enqueue *JobWrapper.wrap(job, args) + end + end + + class JobWrapper + class << self + def wrap(job, args) + [ new(job), *args.prepend(job) ] + end + + def perform(job_name, *args) + job_name.constantize.perform *Parameters.deserialize(args) + end + end + + def initialize(job) + @queue = job.queue_name + end + + def to_s + self.class.to_s end end end |