Class: Cron::Command
- Inherits:
-
Object
- Object
- Cron::Command
- Defined in:
- lib/app/jobs/cron/command.rb
Overview
Provide a friendly command structure for managing the cron server
Instance Method Summary collapse
-
#daemonize ⇒ Object
Start the background loop.
-
#initialize(args) ⇒ Command
constructor
Initialize the command.
Constructor Details
#initialize(args) ⇒ Command
Initialize the command
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/app/jobs/cron/command.rb', line 20 def initialize(args) @options = { pid_dir: "#{root}/tmp/pids", log_dir: "#{root}/log", monitor: false } opts = OptionParser.new do |opt| opt. = "Usage: #{File.basename($PROGRAM_NAME)} [options] start|stop|restart|run" opt.on('-h', '--help', 'Show this message') do warn opt exit 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('-m', '--monitor', 'Start monitor process.') do @options[:monitor] = true end opt.on('--exit-on-complete', 'Exit when no more jobs are available to run.') 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 = end end @args = opts.parse!(args) + (@daemon_options || []) end |
Instance Method Details
#daemonize ⇒ Object
Start the background loop
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/app/jobs/cron/command.rb', line 52 def daemonize dir = @options[:pid_dir] FileUtils.mkdir_p(dir) unless File.exist?(dir) GC.enable Cron::JobTab.ensure_cron_tabs Daemons.run_proc('cron_server', dir: @options[:pid_dir], monitor: @options[:monitor], ARGV: @args) do loop { sleep Cron::Server.find_or_create_server.execute } end end |