Module: DelayedJobMonitor

Defined in:
lib/delayed_job_monitor.rb,
lib/delayed_job_monitor/job.rb,
lib/delayed_job_monitor/server.rb,
lib/delayed_job_monitor/worker.rb,
lib/delayed_job_monitor/version.rb,
lib/delayed_job_monitor/application/app.rb

Defined Under Namespace

Classes: App, Job, Server, Worker

Constant Summary collapse

VERSION =
"0.0.5"

Class Method Summary collapse

Class Method Details

.[](key) ⇒ Object



9
10
11
12
13
14
# File 'lib/delayed_job_monitor.rb', line 9

def self.[](key)
unless @config
  	@config = YAML.load_file("config.yml").symbolize_keys
  end
  @config[key.to_sym]
end

.[]=(key, value) ⇒ Object



16
17
18
# File 'lib/delayed_job_monitor.rb', line 16

def self.[]=(key, value)
  @config[key.to_sym] = value
end

.connected?Boolean

Returns:

  • (Boolean)


50
51
52
53
54
55
56
# File 'lib/delayed_job_monitor.rb', line 50

def self.connected?
	if defined? DelayedJobMonitor.connection
		return true
	else
		return false
	end
end

.delayed_job_running_locally?Boolean

Returns:

  • (Boolean)


41
42
43
44
45
46
47
48
# File 'lib/delayed_job_monitor.rb', line 41

def self.delayed_job_running_locally?
	local_delayed_jobs = %x{ps aux}.split(/\n/).map{|x| x.split(/\s+/) if x.split(/\s+/).last.match("job")}.compact
	if local_delayed_jobs.empty?
		return false
	else
	  return true
	end
end

.establish_connectionObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/delayed_job_monitor.rb', line 20

def self.establish_connection
	begin
		if DelayedJobMonitor[:database]["host"].nil?
			p "No database connection defined in config.yml"
		else
			if defined? connection
				p "There is already a DB connection locally...closing"
				DelayedJobMonitor.connection.disconnect!
				DelayedJobMonitor.connection.connection.close
				ActiveRecord::Base.clear_active_connections!
				ActiveRecord::Base.clear_reloadable_connections!
			end
			db = DelayedJobMonitor[:database]
			connection =  ActiveRecord::Base.establish_connection(:adapter => db["adapter"],:database => db["database"],:host=>db["host"],:port=>db["port"],:username=>db["username"],:password=>db["password"],:encoding => "utf8",:template=>"template0")
			return connection
		end
	rescue
	 raise true
	end
end

.initialize_serversObject



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/delayed_job_monitor.rb', line 62

def self.initialize_servers
	unless DelayedJobMonitor[:hosts].first["host"].nil?

		DelayedJobMonitor[:hosts].each do |host|
			DelayedJobMonitor::Server.new(host["name"],host["host"],host["rails_path"],host["username"],host["password"])
		end

		if delayed_job_running_locally?
			DelayedJobMonitor::Server.new
		end
		
		return DelayedJobMonitor::Server.servers
	else
		DelayedJobMonitor::Server.new
		p "No hosts configured. Connecting to localhost"
	end
end

.stand_alone_mode?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/delayed_job_monitor.rb', line 58

def self.stand_alone_mode?
	!ENV["RAILS_ENV"].present?
end

.start!Object



80
81
82
83
84
85
86
# File 'lib/delayed_job_monitor.rb', line 80

def self.start!
	if stand_alone_mode? && !connected?
		DelayedJobMonitor.establish_connection
	end
	DelayedJobMonitor.initialize_servers
	DelayedJobMonitor::App.run!
end