Recurring job with a certain frequency.
The frequency, in seconds, of this EveryJob
# File lib/rufus/sc/jobs.rb, line 248 def initialize (scheduler, t, params, &block) super determine_frequency determine_at end
Triggers the job (and reschedules it).
# File lib/rufus/sc/jobs.rb, line 256 def trigger schedule_next super #unschedule if @params[:dont_reschedule] # obsolete end
# File lib/rufus/sc/jobs.rb, line 274 def determine_at return unless @frequency @last = @at # the first time, @last will be nil @at = if @last @last + @frequency else if fi = @params[:first_in] Time.now.to_f + Rufus.duration_to_f(fi) elsif fa = @params[:first_at] Rufus.at_to_f(fa) else Time.now.to_f + @frequency end end end
# File lib/rufus/sc/jobs.rb, line 268 def determine_frequency @frequency = @t.is_a?(Fixnum) || @t.is_a?(Float) ? @t : Rufus.parse_duration_string(@t) end
It's an every job, have to schedule next time it occurs...
# File lib/rufus/sc/jobs.rb, line 296 def schedule_next determine_at @scheduler.send(:add_job, self) end