class ResqueAdmin::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_admin'
  require 'resque_admin/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 81
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
  ResqueAdmin::Scheduler.quiet = if options.key?(:quiet)
                              !!options[:quiet]
                            else
                              true
                            end

  unless Process.respond_to?('daemon')
    abort 'background option is set, which requires ruby >= 1.9'
  end

  Process.daemon(true, !ResqueAdmin::Scheduler.quiet)
  ResqueAdmin.redis.client.reconnect
end
setup_pid_file() click to toggle source
# File lib/resque/scheduler/env.rb, line 49
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_admin_configuration() click to toggle source
# File lib/resque/scheduler_admin/env.rb, line 61
def setup_scheduler_admin_configuration
  ResqueAdmin::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
setup_scheduler_configuration() click to toggle source
# File lib/resque/scheduler/env.rb, line 61
def setup_scheduler_configuration
  ResqueAdmin::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