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