52 lines
1.1 KiB
Plaintext
52 lines
1.1 KiB
Plaintext
# a default email contact for when a service dies and needs to be restarted
|
|
God.contact(:email) do |c|
|
|
c.name = "john"
|
|
c.to_email = "email@example.com"
|
|
c.delivery_method = :sendmail
|
|
end
|
|
|
|
def notifies(condition)
|
|
c.notify = "john"
|
|
end
|
|
|
|
def keep_process_running(w)
|
|
w.start_if do |start|
|
|
start.condition(:process_running) do |c|
|
|
c.running = false
|
|
c.interval = 5.seconds
|
|
notifies(c)
|
|
end
|
|
end
|
|
end
|
|
|
|
def shared_config(w)
|
|
w.group = "<%= application %>"
|
|
w.dir = '<%= current_path %>'
|
|
|
|
w.env = {
|
|
'BUNDLE_GEMFILE' => '',
|
|
'BUNDLE_BIN_PATH' => '',
|
|
'RAILS_ENV' => '<%= stage %>',
|
|
'RACK_ENV' => '<%= stage %>'
|
|
}
|
|
|
|
w.log = "<%= shared_path %>/god.log"
|
|
|
|
keep_process_running(w)
|
|
end
|
|
|
|
# example for a thin-powered app, which is what I use the most of
|
|
<%= thin_servers %>.times do |port_id|
|
|
port = <%= thin_port %> + port_id
|
|
|
|
God.watch do |w|
|
|
# assign all watches to this group so personal_deity can stop/start them all at once
|
|
w.name = "<%= application %>-thin-#{port}"
|
|
|
|
w.start = "bundle exec thin -e <%= stage %> -p #{port} start"
|
|
|
|
shared_config(w)
|
|
end
|
|
end
|
|
|