examples/gravatar.god in god-0.4.3 vs examples/gravatar.god in god-0.5.0

- old
+ new

@@ -1,41 +1,54 @@ # run with: god -c /path/to/gravatar.god # # This is the actual config file used to keep the mongrels of # gravatar.com running. -RAILS_ROOT = "/var/www/gravatar2/current" +RAILS_ROOT = "/Users/tom/dev/gravatar2" %w{8200 8201 8202}.each do |port| God.watch do |w| w.name = "gravatar2-mongrel-#{port}" - w.interval = 30 # seconds - w.start = "mongrel_rails cluster::start --only #{port} \ - -C #{RAILS_ROOT}/config/mongrel_cluster.yml" - w.stop = "mongrel_rails cluster::stop --only #{port} \ - -C #{RAILS_ROOT}/config/mongrel_cluster.yml" - w.grace = 10 # seconds + w.interval = 30.seconds # default + w.start = "mongrel_rails start -c #{RAILS_ROOT} -p #{port} \ + -P #{RAILS_ROOT}/log/mongrel.#{port}.pid -d" + w.stop = "mongrel_rails stop -P #{RAILS_ROOT}/log/mongrel.#{port}.pid" + w.restart = "mongrel_rails restart -P #{RAILS_ROOT}/log/mongrel.#{port}.pid" + w.start_grace = 10.seconds + w.restart_grace = 10.seconds + w.pid_file = File.join(RAILS_ROOT, "log/mongrel.#{port}.pid") - pid_file = File.join(RAILS_ROOT, "log/mongrel.#{port}.pid") - w.behavior(:clean_pid_file) w.start_if do |start| start.condition(:process_running) do |c| - c.interval = 5 # seconds + c.interval = 5.seconds c.running = false end end w.restart_if do |restart| restart.condition(:memory_usage) do |c| - c.above = (150 * 1024) # 150mb + c.above = 150.megabytes c.times = [3, 5] # 3 out of 5 intervals end restart.condition(:cpu_usage) do |c| - c.above = 50 # percent + c.above = 50.percent c.times = 5 + end + end + + # lifecycle + w.lifecycle do |on| + on.condition(:flapping) do |c| + c.to_state = [:start, :restart] + c.times = 5 + c.within = 5.minute + c.transition = :unmonitored + c.retry_in = 10.minutes + c.retry_times = 5 + c.retry_within = 2.hours end end end end \ No newline at end of file