module TaskRunner

included by class Task

Public Class Methods

included(klass) click to toggle source
# File lib/fluentd_server/task_runner.rb, line 3
def self.included(klass)
  require 'fileutils'
  klass.extend(ClassMethods)
end

Public Instance Methods

before(job) click to toggle source

delayed_job hooks

# File lib/fluentd_server/task_runner.rb, line 42
def before(job)
  @job = job
end
configtest() click to toggle source
# File lib/fluentd_server/task_runner.rb, line 28
def configtest
  system(write_query_header('configtest'))
  self.delay.delayed_configtest
end
delayed_configtest() click to toggle source
# File lib/fluentd_server/task_runner.rb, line 33
def delayed_configtest
  cmd = serf_query('configtest')
  logger.debug "run #{cmd}"
  self.exit_code = system(cmd)
  self.save!
end
delayed_status() click to toggle source
# File lib/fluentd_server/task_runner.rb, line 21
def delayed_status
  cmd = serf_query('status')
  logger.debug "run #{cmd}"
  self.exit_code = system(cmd)
  self.save!
end
failure() click to toggle source
# File lib/fluentd_server/task_runner.rb, line 46
def failure
  logger.warn "job #{@job.attributes} failed"
end
restart() click to toggle source
# File lib/fluentd_server/task_runner.rb, line 8
def restart
  system(write_event_header('restart'))
  cmd = serf_event('restart')
  logger.debug "run #{cmd}"
  self.exit_code = system(cmd)
  self.save!
end
serf_event(cmd) click to toggle source

serf event works asynchronously, so it does not take time

# File lib/fluentd_server/task_runner.rb, line 61
def serf_event(cmd)
  "#{self.class.serf_path} event td-agent-#{cmd} >> #{self.filename} 2>&1"
end
serf_query(cmd) click to toggle source

serf query works synchronously, so it takes time

# File lib/fluentd_server/task_runner.rb, line 66
def serf_query(cmd)
  "#{self.class.serf_path} query td-agent-#{cmd} >> #{self.filename} 2>&1"
end
status() click to toggle source
# File lib/fluentd_server/task_runner.rb, line 16
def status
  system(write_query_header('status'))
  self.delay.delayed_status
end
write_event_header(cmd) click to toggle source

helpers

# File lib/fluentd_server/task_runner.rb, line 52
def write_event_header(cmd)
  "echo '$ serf event td-agent-#{cmd}' > #{self.filename}"
end
write_query_header(cmd) click to toggle source
# File lib/fluentd_server/task_runner.rb, line 56
def write_query_header(cmd)
  "echo '$ serf query td-agent-#{cmd}' > #{self.filename}"
end