Class: TasksScheduler::Checker

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/tasks_scheduler/checker.rb

Constant Summary collapse

CHECK_INTERVAL =
15
LOG_ON_FILE_ENV_KEY =
'TASKS_SCHEDULER_LOG_ON_FILE'.freeze

Instance Method Summary collapse

Instance Method Details

#log_pathObject



20
21
22
# File 'lib/tasks_scheduler/checker.rb', line 20

def log_path
  ::Rails.root.join('log', 'tasks_scheduler', 'checker.log')
end

#runObject



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/tasks_scheduler/checker.rb', line 8

def run
  check_log
  running = true
  Signal.trap('TERM') { running = false }
  while running
    Rails.logger.info('Checking all tasks...')
    ::ScheduledTask.all.each(&:check)
    Rails.logger.info("All tasks checked. Sleeping for #{CHECK_INTERVAL} second(s)...")
    sleep(CHECK_INTERVAL)
  end
end