Module: TaskRunner

Included in:
Task
Defined in:
lib/fluentd_server/task_runner.rb

Overview

included by class Task

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



3
4
5
6
# File 'lib/fluentd_server/task_runner.rb', line 3

def self.included(klass)
  require 'fileutils'
  klass.extend(ClassMethods)
end

Instance Method Details

#before(job) ⇒ Object

delayed_job hooks



42
43
44
# File 'lib/fluentd_server/task_runner.rb', line 42

def before(job)
  @job = job
end

#configtestObject



28
29
30
31
# File 'lib/fluentd_server/task_runner.rb', line 28

def configtest
  system(write_query_header('configtest'))
  self.delay.delayed_configtest
end

#delayed_configtestObject



33
34
35
36
37
38
# 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_statusObject



21
22
23
24
25
26
# 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

#failureObject



46
47
48
# File 'lib/fluentd_server/task_runner.rb', line 46

def failure
  logger.warn "job #{@job.attributes} failed"
end

#restartObject



8
9
10
11
12
13
14
# 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) ⇒ Object

serf event works asynchronously, so it does not take time



61
62
63
# 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) ⇒ Object

serf query works synchronously, so it takes time



66
67
68
# 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

#statusObject



16
17
18
19
# 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) ⇒ Object

helpers



52
53
54
# 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) ⇒ Object



56
57
58
# File 'lib/fluentd_server/task_runner.rb', line 56

def write_query_header(cmd)
  "echo '$ serf query td-agent-#{cmd}' > #{self.filename}"
end