lib/resque/scheduler.rb in resque-scheduler-1.9.7 vs lib/resque/scheduler.rb in resque-scheduler-1.9.8

- old
+ new

@@ -101,18 +101,22 @@ def enqueue_delayed_items_for_timestamp(timestamp) item = nil begin handle_shutdown do if item = Resque.next_item_for_timestamp(timestamp) - log "queuing #{item['class']} [delayed]" - queue = item['queue'] || Resque.queue_from_class(constantize(item['class'])) - # Support custom job classes like job with status - if (job_klass = item['custom_job_class']) && (job_klass != 'Resque::Job') - # custom job classes not supporting the same API calls must implement the #schedule method - constantize(job_klass).scheduled(queue, item['class'], *item['args']) - else - Resque::Job.create(queue, item['class'], *item['args']) + begin + log "queuing #{item['class']} [delayed]" + queue = item['queue'] || Resque.queue_from_class(constantize(item['class'])) + # Support custom job classes like job with status + if (job_klass = item['custom_job_class']) && (job_klass != 'Resque::Job') + # custom job classes not supporting the same API calls must implement the #schedule method + constantize(job_klass).scheduled(queue, item['class'], *item['args']) + else + Resque::Job.create(queue, item['class'], *item['args']) + end + rescue + log! "Failed to enqueue #{klass_name}:\n #{$!}" end end end # continue processing until there are no more ready items in this timestamp end while !item.nil? @@ -126,18 +130,20 @@ # Enqueues a job based on a config hash def enqueue_from_config(config) args = config['args'] || config[:args] klass_name = config['class'] || config[:class] - params = args.nil? ? [] : Array(args) + params = args.is_a?(Hash) ? [args] : Array(args) queue = config['queue'] || config[:queue] || Resque.queue_from_class(constantize(klass_name)) # Support custom job classes like job with status if (job_klass = config['custom_job_class']) && (job_klass != 'Resque::Job') # custom job classes not supporting the same API calls must implement the #schedule method constantize(job_klass).scheduled(queue, klass_name, *params) else Resque::Job.create(queue, klass_name, *params) end + rescue + log! "Failed to enqueue #{klass_name}:\n #{$!}" end def rufus_scheduler @rufus_scheduler ||= Rufus::Scheduler.start_new end