Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
MINIONS = [ { :rails_root => "/home/mycoolapp/staging/current", :mongrel_ports => [4001,4002,4003,4004,4005], :uid => 'mycoolapp', :gid => 'mycoolapp', :pid_path => '/home/mycoolapp/staging/shared/tmp/pids' } ] MINIONS.each do |minion| minion[:mongrel_ports].each do |port| God.watch do |w| w.name = "mongrel-#{port}" w.uid = minion[:uid] w.gid = minion[:gid] w.interval = 30.seconds # default w.start = "mongrel_rails start -c #{minion[:rails_root]} -p #{port} \ -P #{minion[:pid_path]}/mongrel.#{port}.pid -e production -d" w.stop = "mongrel_rails stop -P #{minion[:pid_path]}/mongrel.#{port}.pid" w.restart = "mongrel_rails restart -P #{minion[:pid_path]}/mongrel.#{port}.pid" w.start_grace = 10.seconds w.restart_grace = 10.seconds w.pid_file = "#{minion[:pid_path]}/mongrel.#{port}.pid" w.behavior(:clean_pid_file) w.start_if do |start| start.condition(:process_running) do |c| c.interval = 5.seconds c.running = false end end w.restart_if do |restart| restart.condition(:memory_usage) do |c| 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.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 end
This paste will be private.
From the Design Piracy series on my blog: