class Rufus::Scheduler::CronJob

Attributes

cron_line[R]

Public Class Methods

new(scheduler, cronline, opts, block) click to toggle source
Calls superclass method Rufus::Scheduler::RepeatJob::new
# File lib/rufus/scheduler/jobs.rb, line 649
def initialize(scheduler, cronline, opts, block)

  super(scheduler, cronline, opts, block)

  @cron_line = opts[:_t] || ::Fugit::Cron.do_parse(cronline)

  set_next_time(nil)
end

Public Instance Methods

brute_frequency() click to toggle source
# File lib/rufus/scheduler/jobs.rb, line 673
def brute_frequency

  @cron_line.brute_frequency
end
check_frequency() click to toggle source
# File lib/rufus/scheduler/jobs.rb, line 658
def check_frequency

  return if @scheduler.frequency <= 1
    #
    # The minimum time delta in a cron job is 1 second, so if the
    # scheduler frequency is less than that, no worries.

  f = @cron_line.rough_frequency

  fail ArgumentError.new(
   "job frequency (min ~#{f}s) is higher than " +
   "scheduler frequency (#{@scheduler.frequency}s)"
  ) if f < @scheduler.frequency
end
next_time_from(time) click to toggle source
# File lib/rufus/scheduler/jobs.rb, line 683
def next_time_from(time)

  if @first_at == nil || @first_at <= time
    @cron_line.next_time(time)
  else
    @first_at
  end
end
rough_frequency() click to toggle source
# File lib/rufus/scheduler/jobs.rb, line 678
def rough_frequency

  @cron_line.rough_frequency
end

Protected Instance Methods

set_next_time(trigger_time, is_post=false) click to toggle source
# File lib/rufus/scheduler/jobs.rb, line 694
def set_next_time(trigger_time, is_post=false)

  @next_time = next_time_from(trigger_time || Time.now)
end