lib/resque/scheduler.rb in resque-scheduler-3.1.0 vs lib/resque/scheduler.rb in resque-scheduler-4.0.0

- old
+ new

@@ -68,11 +68,11 @@ end def print_schedule if rufus_scheduler log! "Scheduling Info\tLast Run" - scheduler_jobs = rufus_scheduler.all_jobs + scheduler_jobs = rufus_scheduler.jobs scheduler_jobs.each do |_k, v| log! "#{v.t}\t#{v.last}\t" end end end @@ -100,15 +100,18 @@ def optionizate_interval_value(value) args = value if args.is_a?(::Array) return args.first if args.size > 2 || !args.last.is_a?(::Hash) # symbolize keys of hash for options - args[1] = args[1].reduce({}) do |m, i| + args[2] = args[1].reduce({}) do |m, i| key, value = i m[(key.respond_to?(:to_sym) ? key.to_sym : key) || key] = value m end + + args[2][:job] = true + args[1] = nil end args end # Loads a job schedule into the Rufus::Scheduler and stores it @@ -126,10 +129,14 @@ interval_defined = false interval_types = %w(cron every) interval_types.each do |interval_type| if !config[interval_type].nil? && config[interval_type].length > 0 args = optionizate_interval_value(config[interval_type]) + if args.is_a?(::String) + args = [args, nil, job: true] + end + job = rufus_scheduler.send(interval_type, *args) do if master? log! "queueing #{config['class']} (#{name})" Resque.last_enqueued_at(name, Time.now.to_s) handle_errors { enqueue_from_config(config) } @@ -266,11 +273,11 @@ end end end def rufus_scheduler - @rufus_scheduler ||= Rufus::Scheduler.start_new + @rufus_scheduler ||= Rufus::Scheduler.new end # Stops old rufus scheduler and creates a new one. Returns the new # rufus scheduler def clear_schedule! @@ -290,10 +297,11 @@ if Resque.redis.scard(:schedules_changed) > 0 procline 'Updating schedule' loop do schedule_name = Resque.redis.spop(:schedules_changed) break unless schedule_name - if Resque.reload_schedule!.keys.include?(schedule_name) + Resque.reload_schedule! + if Resque.schedule.keys.include?(schedule_name) unschedule_job(schedule_name) load_schedule_job(schedule_name, Resque.schedule[schedule_name]) else unschedule_job(schedule_name) end