lib/resque/scheduler.rb in resque-scheduler-2.2.0 vs lib/resque/scheduler.rb in resque-scheduler-2.3.0

- old
+ new

@@ -218,21 +218,21 @@ # Enqueues a job based on a config hash def enqueue_from_config(job_config) args = job_config['args'] || job_config[:args] klass_name = job_config['class'] || job_config[:class] - klass = Resque.constantize(klass_name) rescue klass_name + klass = ResqueScheduler::Util.constantize(klass_name) rescue klass_name params = args.is_a?(Hash) ? [args] : Array(args) queue = job_config['queue'] || job_config[:queue] || Resque.queue_from_class(klass) # Support custom job classes like those that inherit from Resque::JobWithStatus (resque-status) if (job_klass = job_config['custom_job_class']) && (job_klass != 'Resque::Job') # The custom job class API must offer a static "scheduled" method. If the custom # job class can not be constantized (via a requeue call from the web perhaps), fall # back to enqueing normally via Resque::Job.create. begin - Resque.constantize(job_klass).scheduled(queue, klass_name, *params) + ResqueScheduler::Util.constantize(job_klass).scheduled(queue, klass_name, *params) rescue NameError # Note that the custom job class (job_config['custom_job_class']) is the one enqueued Resque::Job.create(queue, job_klass, *params) end else @@ -311,11 +311,14 @@ # Sets the shutdown flag, clean schedules and exits if sleeping def shutdown @shutdown = true if @sleeping - Resque.clean_schedules - Thread.new { release_master_lock! } + thread = Thread.new do + Resque.clean_schedules + release_master_lock! + end + thread.join exit end end def log!(msg)