class Rufus::Scheduler::EveryJob
Recurring job with a certain frequency.
def determine_at
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
def determine_frequency
def determine_frequency @frequency = @t.is_a?(Fixnum) || @t.is_a?(Float) ? @t : Rufus.parse_duration_string(@t) end
def initialize (scheduler, t, params, &block)
def initialize (scheduler, t, params, &block) super determine_frequency determine_at end
def schedule_next
It's an every job, have to schedule next time it occurs...
def schedule_next determine_at @scheduler.send(:add_job, self) end
def trigger
Triggers the job (and reschedules it).
def trigger schedule_next super #unschedule if @params[:dont_reschedule] # obsolete end