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