def initialize(args)
@options = {
:quiet => true,
:pid_dir => "#{root}/tmp/pids",
:log_dir => "#{root}/log"
}
@worker_count = 1
@monitor = false
opts = OptionParser.new do |opt|
opt.banner = "Usage: #{File.basename($PROGRAM_NAME)} [options] start|stop|restart|run"
opt.on('-h', '--help', 'Show this message') do
puts opt
exit 1
end
opt.on('-e', '--environment=NAME', 'Specifies the environment to run this delayed jobs under (test/development/production).') do |_e|
STDERR.puts 'The -e/--environment option has been deprecated and has no effect. Use RAILS_ENV and see http://github.com/collectiveidea/delayed_job/issues/7'
end
opt.on('--min-priority N', 'Minimum priority of jobs to run.') do |n|
@options[:min_priority] = n
end
opt.on('--max-priority N', 'Maximum priority of jobs to run.') do |n|
@options[:max_priority] = n
end
opt.on('-n', '--number_of_workers=workers', 'Number of unique workers to spawn') do |worker_count|
@worker_count = worker_count.to_i rescue 1
end
opt.on('--pid-dir=DIR', 'Specifies an alternate directory in which to store the process ids.') do |dir|
@options[:pid_dir] = dir
end
opt.on('--log-dir=DIR', 'Specifies an alternate directory in which to store the delayed_job log.') do |dir|
@options[:log_dir] = dir
end
opt.on('-i', '--identifier=n', 'A numeric identifier for the worker.') do |n|
@options[:identifier] = n
end
opt.on('-m', '--monitor', 'Start monitor process.') do
@monitor = true
end
opt.on('--sleep-delay N', 'Amount of time to sleep when no jobs are found') do |n|
@options[:sleep_delay] = n.to_i
end
opt.on('--read-ahead N', 'Number of jobs from the queue to consider') do |n|
@options[:read_ahead] = n
end
opt.on('-p', '--prefix NAME', 'String to be prefixed to worker process names') do |prefix|
@options[:prefix] = prefix
end
opt.on('--queues=queues', 'Specify which queue DJ must look up for jobs') do |queues|
@options[:queues] = queues.split(',')
end
opt.on('--queue=queue', 'Specify which queue DJ must look up for jobs') do |queue|
@options[:queues] = queue.split(',')
end
opt.on('--pool=queue1[,queue2][:worker_count]', 'Specify queues and number of workers for a worker pool') do |pool|
parse_worker_pool(pool)
end
opt.on('--exit-on-complete', 'Exit when no more jobs are available to run. This will exit if all jobs are scheduled to run in the future.') do
@options[:exit_on_complete] = true
end
opt.on('--daemon-options a, b, c', Array, 'options to be passed through to daemons gem') do |daemon_options|
@daemon_options = daemon_options
end
end
@args = opts.parse!(args) + (@daemon_options || [])
end