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