Class: TasksScheduler::Daemon
- Inherits:
-
Object
- Object
- TasksScheduler::Daemon
- 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_args ⇒ Object
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
20 21 22 |
# File 'lib/tasks_scheduler/daemon.rb', line 20 def running? execute('status')[:status].zero? end |