Inline the job wrappers

上级 f71147ec
module ActiveJob
module JobWrappers
class DelayedJobWrapper
def perform(job, *args)
job.perform(*ActiveJob::Parameters.deserialize(args))
end
end
end
end
require 'resque'
require 'active_support/core_ext/enumerable'
require 'active_support/core_ext/array/access'
module ActiveJob
module JobWrappers
class ResqueWrapper
class << self
def wrap(job, args)
[ new(job), *args.prepend(job) ]
end
def perform(job_name, *args)
job_name.constantize.perform(*ActiveJob::Parameters.deserialize(args))
end
end
def initialize(job)
@queue = job.queue_name
end
def to_s
self.class.to_s
end
end
end
end
require 'active_job/parameters'
module ActiveJob
module JobWrappers
class SidekiqWrapper
include Sidekiq::Worker
def perform(job_name, *args)
job_name.constantize.perform(*ActiveJob::Parameters.deserialize(args))
end
end
end
end
module ActiveJob
module JobWrappers
class SuckerPunchWrapper
include SuckerPunch::Job
def perform(job_name, *args)
job_name.perform(*ActiveJob::Parameters.deserialize(args))
end
end
end
end
require 'delayed_job'
require 'active_job/job_wrappers/delayed_job_wrapper'
module ActiveJob
module QueueAdapters
class DelayedJobAdapter
class << self
def queue(job, *args)
JobWrappers::DelayedJobWrapper.new.delay(queue: job.queue_name).perform(job, *args)
JobWrapper.new.delay(queue: job.queue_name).perform(job, *args)
end
end
class JobWrapper
def perform(job, *args)
job.perform(*ActiveJob::Parameters.deserialize(args))
end
end
end
......
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(*ActiveJob::Parameters.deserialize(args))
end
end
def initialize(job)
@queue = job.queue_name
end
def to_s
self.class.to_s
end
end
end
......
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)
JobWrapper.perform_async(job, *args)
end
end
class JobWrapper
include Sidekiq::Worker
def perform(job_name, *args)
job_name.constantize.perform(*ActiveJob::Parameters.deserialize(args))
end
end
end
......
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)
JobWrapper.new.async.perform(job, *args)
end
end
class JobWrapper
include SuckerPunch::Job
def perform(job_name, *args)
job_name.perform(*ActiveJob::Parameters.deserialize(args))
end
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册