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 630
def initialize(scheduler, cronline, opts, block)

  super(scheduler, cronline, opts, block)

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

  set_next_time(nil)
end

Public Instance Methods

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

  @cron_line.brute_frequency
end
check_frequency() click to toggle source
# File lib/rufus/scheduler/jobs.rb, line 639
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
rough_frequency() click to toggle source
# File lib/rufus/scheduler/jobs.rb, line 659
def rough_frequency

  @cron_line.rough_frequency
end

Protected Instance Methods

next_time_from(time) click to toggle source
# File lib/rufus/scheduler/jobs.rb, line 671
def next_time_from(time)

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

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