def enqueue_from_config(job_config)
args = job_config['args'] || job_config[:args]
klass_name = job_config['class'] || job_config[:class]
begin
klass = Resque::Scheduler::Util.constantize(klass_name)
rescue NameError
klass = klass_name
end
params = args.is_a?(Hash) ? [args] : Array(args)
queue = job_config['queue'] ||
job_config[:queue] ||
Resque.queue_from_class(klass)
job_klass = job_config['custom_job_class']
if job_klass && job_klass != 'Resque::Job'
begin
Resque::Scheduler::Util.constantize(job_klass).scheduled(
queue, klass_name, *params
)
rescue NameError
Resque::Job.create(queue, job_klass, *params)
end
else
if Class === klass
Resque::Scheduler::Plugin.run_before_delayed_enqueue_hooks(
klass, *params
)
if klass.respond_to?(:scheduled)
klass.scheduled(queue, klass_name, *params)
else
Resque.enqueue_to(queue, klass, *params)
end
else
Resque::Job.create(queue, klass, *params)
end
end
end