class Rufus::Scheduler::CronJobQueue


Tracking cron jobs.

def <<(job)

def <<(job)
  @mutex.synchronize do
    delete(job.job_id)
    @jobs << job
  end
end

def initialize

def initialize
  super
  @last_cron_second = nil
end

def trigger_matching_jobs

def trigger_matching_jobs
  now = Time.now
  return if now.sec == @last_cron_second
  @last_cron_second = now.sec
    #
    # ensuring the crons are checked within 1 second (not 1.2 second)
  jobs = @mutex.synchronize { @jobs.dup }
  jobs.each { |job| job.trigger_if_matches(now) }
end