class Resque::Scheduler::Env

Attributes

options[R]
pidfile_path[R]

Public Class Methods

new(options) click to toggle source
# File lib/resque/scheduler/env.rb, line 8
def initialize(options)
  @options = options
  @pidfile_path = nil
end

Public Instance Methods

cleanup() click to toggle source
# File lib/resque/scheduler/env.rb, line 22
def cleanup
  cleanup_pid_file
end
setup() click to toggle source
# File lib/resque/scheduler/env.rb, line 13
def setup
  require 'resque'
  require 'resque/scheduler'

  setup_backgrounding
  setup_pid_file
  setup_scheduler_configuration
end

Private Instance Methods

cleanup_pid_file() click to toggle source
# File lib/resque/scheduler/env.rb, line 77
def cleanup_pid_file
  return unless pidfile_path

  File.delete(pidfile_path) if File.exist?(pidfile_path)
  @pidfile_path = nil
end
setup_backgrounding() click to toggle source
# File lib/resque/scheduler/env.rb, line 30
def setup_backgrounding
  return unless options[:background]

  # Need to set this here for conditional Process.daemon redirect of
  # stderr/stdout to /dev/null
  Resque::Scheduler.quiet = if options.key?(:quiet)
                              !!options[:quiet]
                            else
                              true
                            end

  Process.daemon(true, !Resque::Scheduler.quiet)
  Resque.redis.reconnect
end
setup_pid_file() click to toggle source
# File lib/resque/scheduler/env.rb, line 45
def setup_pid_file
  return unless options[:pidfile]

  @pidfile_path = File.expand_path(options[:pidfile])

  File.open(pidfile_path, 'w') do |f|
    f.puts $PROCESS_ID
  end

  at_exit { cleanup_pid_file }
end
setup_scheduler_configuration() click to toggle source
# File lib/resque/scheduler/env.rb, line 57
def setup_scheduler_configuration
  Resque::Scheduler.configure do |c|
    c.app_name = options[:app_name] if options.key?(:app_name)

    c.dynamic = !!options[:dynamic] if options.key?(:dynamic)

    c.env = options[:env] if options.key?(:env)

    c.logfile = options[:logfile] if options.key?(:logfile)

    c.logformat = options[:logformat] if options.key?(:logformat)

    if (psleep = options[:poll_sleep_amount]) && !psleep.nil?
      c.poll_sleep_amount = Float(psleep)
    end

    c.verbose = !!options[:verbose] if options.key?(:verbose)
  end
end