Sha256: b233beb7943efe24f7d933c6c709d8c79e54ceb4ee536b997db355b44ecbc510

Contents?: true

Size: 1.84 KB

Versions: 3

Compression:

Stored size: 1.84 KB

Contents

rack_env   = "<%= @node[:environment][:framework_env] %>"
app_root   = "/data/awsm/current"
owner      = "<%= @node[:owner_name] %>"
home      = "/home/#{owner}"
instance_id = "<%= @node.engineyard.id %>"

<%= @resque_workers_count %>.times do |num|
  inline = "#{home}/.ruby_inline/resque-#{num}"

  God.watch do |w|
    w.name     = "resque-#{num}"
    w.group    = 'resque'
    w.uid      = owner
    w.gid      = owner
    w.interval = 30.seconds
    w.log      = "#{app_root}/log/worker.#{num}.log"
    w.dir      = app_root
    w.env      = {
      "VERBOSE"     => "true",
      "INSTANCE_ID" => instance_id,
      "GOD_WATCH"   => w.name,
      "RACK_ENV"    => rack_env,
      "LANG"        => "en_US.utf-8",
      "MERB_ENV"    => rack_env,
      "HOME"        => home,
      "INLINEDIR"   => inline
    }

    w.start    = "bundle exec rake --trace resque:work"

    w.behavior(:clean_pid_file)

    w.start_grace = 2.minutes
    w.restart_grace = 2.minutes

    # retart 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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
eycloud-recipe-resque-1.0.2 templates/default/resque.rb.erb
eycloud-recipe-resque-1.0.1 templates/default/resque.rb.erb
eycloud-recipe-resque-1.0 templates/default/resque.rb.erb