Sha256: d079e8ef4924acb0a6a07727f9f8011904541fdd6d5c907782455a07d2eaef9b

Contents?: true

Size: 618 Bytes

Versions: 26

Compression:

Stored size: 618 Bytes

Contents

# This will ride alongside god and kill any rogue stale worker
# processes. Their sacrifice is for the greater good.

WORKER_TIMEOUT = 60 * 10 # 10 minutes

Thread.new do
  loop do
    begin
      `ps -e -o pid,command | grep [r]esque`.split("\n").each do |line|
        parts   = line.split(' ')
        next if parts[-2] != "at"
        started = parts[-1].to_i
        elapsed = Time.now - Time.at(started)

        if elapsed >= WORKER_TIMEOUT
          ::Process.kill('USR1', parts[0].to_i)
        end
      end
    rescue
      # don't die because of stupid exceptions
      nil
    end

    sleep 30
  end
end

Version data entries

26 entries across 26 versions & 6 rubygems

Version Path
opengotham_resque-1.8.2 examples/god/stale.god
resque-mongo-1.8.1 examples/god/stale.god
resque-1.8.0 examples/god/stale.god
resque-1.7.1 examples/god/stale.god
resque-1.7.0 examples/god/stale.god
resque-1.6.1 examples/god/stale.god
resque-1.6.0 examples/god/stale.god
resque-1.5.2 examples/god/stale.god
resque-1.5.1 examples/god/stale.god
scotttam-resque-0.0.5 examples/god/stale.god
scotttam-resque-0.0.4 examples/god/stale.god
scotttam-resque-0.0.3 examples/god/stale.god
scotttam-resque-0.0.2 examples/god/stale.god
scotttam-resque-0.0.1 examples/god/stale.god
grockit-resque-1.5.0 examples/god/stale.god
resque-1.5.0 examples/god/stale.god
resque-mongo-1.4.0 examples/god/stale.god
resque-1.4.0 examples/god/stale.god
resque-mongo-1.3.1 examples/god/stale.god
resque-1.3.1 examples/god/stale.god