lib/rsched/engine.rb in rsched-0.3.0 vs lib/rsched/engine.rb in rsched-0.3.1

- old
+ new

@@ -12,18 +12,18 @@ require 'cron-spec' @tab = CronSpec::CronSpecification.new(cron) @action = action @sched_start = sched_start @queue = [] - @last_time = from + @last_time = from.to_i / 60 * 60 sched(to) end attr_reader :queue, :action - def sched(now) - while @last_time <= now + def sched(sched_time) + while @last_time <= sched_time t = Time.at(@last_time).utc if @tab.is_specification_in_effect?(t) time = create_time_key(t) @queue << time if time >= @sched_start end @@ -66,11 +66,11 @@ end # {cron => (ident,action)} def set_sched(ident, action, cron) now = Time.now.to_i - @ss[ident] = Sched.new(cron, action, @sched_start, now-@resume, now-@delay) + @ss[ident] = Sched.new(cron, action, @sched_start, now-@delay-@resume, now-@delay) end def init_proc(run_proc, kill_proc) @run_proc = run_proc @extender.init_proc(kill_proc) @@ -79,13 +79,13 @@ def run @extender.start until @finished one = false - now = Time.now.to_i - @delay + sched_time = Time.now.to_i - @delay @ss.each_pair {|ident,s| - s.sched(now) + s.sched(sched_time) s.queue.delete_if {|time| next if @finished token = @lock.acquire(ident, time) case token