Hi all
Is there a way to make god doesn't setup a process if it throws an 
exception?
We use god to start some resque workers and sometimes, one of the workers 
throws an exception, and they doesn't start, but god says that the process 
is 'up', when actually, there are no workers running.

here is my .god file

num_workers.times do |num|
  God.watch do |w|
    w.dir = "#{rails_root}"
    w.name = "resque-#{num}"
    w.group = 'resque'
    w.interval = 5.seconds
    w.env = {"QUEUE"=>"*", "RAILS_ENV"=>rails_env}
    w.start = "/usr/bin/rake -f #{rails_root}/Rakefile environment 
resque:work"

    #w.uid = 'server'
    #w.gid = 'server'

    # restart if memory gets too high
    w.transition(:up, :restart) do |on|
      on.condition(:memory_usage) do |c|
        c.above = 350.megabytes
        c.times = 2
      end
    end

    # determine the state on startup
    w.transition(:init, { true => :up, false => :start }) do |on|
      on.condition(:process_running) do |c|
        c.running = true
      end
    end

    # determine when process has finished starting
    w.transition([:start, :restart], :up) do |on|
      on.condition(:process_running) do |c|
        c.running = true
        c.interval = 5.seconds
      end

      # failsafe
      on.condition(:tries) do |c|
        c.times = 5
        c.transition = :start
        c.interval = 5.seconds
      end
    end

    # start if process is not running
    w.transition(:up, :start) do |on|
      on.condition(:process_running) do |c|
        c.running = false
      end
    end
  end

-- 
You received this message because you are subscribed to the Google Groups 
"god.rb" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/god-rb/-/gFfpv6ZHKe0J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/god-rb?hl=en.

Reply via email to