Class: TasksScheduler::Daemon

Inherits:
Object
  • Object
show all
Defined in:
lib/tasks_scheduler/daemon.rb

Constant Summary collapse

ACTIONS =
%w(status start stop restart).freeze

Class Method Summary collapse

Class Method Details

.env_argsObject



24
25
26
# File 'lib/tasks_scheduler/daemon.rb', line 24

def env_args
  { 'RAILS_ENV' => Rails.env, ::TasksScheduler::Checker::LOG_ON_FILE_ENV_KEY => '1' }
end

.execute(action) ⇒ Object



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

def execute(action)
  raise "Action not allowed: #{action} (Allowed: #{ACTIONS})" unless ACTIONS.include?(action)
  command = ['bundle', 'exec', 'tasks_scheduler', action]
  Dir.chdir(Rails.root) do
    Open3.popen3(env_args, *command) do |_stdin, stdout, stderr, wait_thr|
      { action: action, env_args: env_args.map { |k, v| "#{k}=#{v}" }.join(' | '),
        command: command.join(' '), status: wait_thr.value.to_i, stdout: stdout.read,
        stderr: stderr.read }
    end
  end
end

.running?Boolean

Returns:

  • (Boolean)


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

def running?
  execute('status')[:status].zero?
end