Created
August 29, 2012 01:15
Revisions
-
Otto Hilska created this gist
Aug 29, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,58 @@ rails_env = ENV['RAILS_ENV'] raise "Please specify RAILS_ENV." unless rails_env rails_root = ENV['RAILS_ROOT'] || File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) RESQUE_PROCESSORS = [ [1, "foo,bar"], [2, "baz"], [3, "demo"] ] RESQUE_PROCESSORS.each do |resque_id, resque_queues| God.watch do |w| w.dir = "#{rails_root}" w.name = "resque-#{resque_id}" w.group = 'resque' w.interval = 30.seconds w.env = {"QUEUES"=>resque_queues, "RAILS_ENV"=>rails_env, "BUNDLE_GEMFILE"=>"#{rails_root}/Gemfile"} w.start = "bundle exec rake -f #{rails_root}/Rakefile environment resque:work" w.log = "#{rails_root}/log/resque-#{resque_id}.log" # 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 end