class Rufus::EveryJob

def do_trigger


triggers the job, then reschedules it if necessary
def do_trigger
  hit_exception = false
  begin
    @block.call @job_id, @at, @params
  rescue Exception => e
    @scheduler.send(:log_exception, e)
    hit_exception = true
  end
  if \
    @scheduler.instance_variable_get(:@exit_when_no_more_jobs) or
    (@params[:dont_reschedule] == true) or
    (hit_exception and @params[:try_again] == false)
    @scheduler.instance_variable_get(:@non_cron_jobs).delete(job_id)
      # maybe it'd be better to wipe that reference from here anyway...
    return
  end
  #
  # ok, reschedule ...
  params[:job] = self
  @at = @at + Rufus.duration_to_f(params[:every])
  @scheduler.send(:do_schedule_at, @at, params)
end