2 require File.join(File.dirname(__FILE__), *%w[.. .. lib god])
5 RAILS_ROOT = "/Users/tom/dev/powerset/speechverb"
10 w.interval = 5 # seconds
11 w.start = "mongrel_rails start -P ./log/mongrel.pid -c #{RAILS_ROOT} -p 3001 -d"
12 w.stop = "mongrel_rails stop -P ./log/mongrel.pid -c #{RAILS_ROOT}"
14 pid_file = File.join(RAILS_ROOT, "log/mongrel.pid")
16 # clean pid files before start if necessary
17 w.behavior(:clean_pid_file) do |b|
21 # determine the state on startup
22 w.transition(:init, { true => :up, false => :start }) do |on|
23 on.condition(:process_running) do |c|
29 # determine when process has finished starting
30 w.transition([:start, :restart], :up) do |on|
31 on.condition(:process_running) do |c|
37 # start if process is not running
38 w.transition(:up, :start) do |on|
39 on.condition(:process_exits) do |c|
44 # restart if memory or cpu is too high
45 w.transition(:up, :restart) do |on|
46 on.condition(:memory_usage) do |c|
49 c.above = (50 * 1024) # 50mb
53 on.condition(:cpu_usage) do |c|
56 c.above = 10 # percent
62 # clear old session files
64 # w.name = "local-session-cleanup"
66 # Dir["#{RAILS_ROOT}/tmp/sessions/ruby_sess.*"].select do |f|
67 # File.mtime(f) < Time.now - (7 * 24 * 60 * 60)
68 # end.each { |f| File.delete(f) }
71 # w.start_if do |start|
72 # start.condition(:always)