Sha256: 31f0d3739a45823370ea489a51333a96536c7eb4cc0e69c25c527b703d5228e8

Contents?: true

Size: 784 Bytes

Versions: 8

Compression:

Stored size: 784 Bytes

Contents

# Simple Rack Middleware to kill Unicorns after X requests.
#
# Use as follows in e.g. your rackup File:
#
# Rack::Harakiri.after = 50
# use Rack::Harakiri
#
module Rack
  class Harakiri
    
    # Set the amount of requests before the Unicorn commits Harakiri.
    #
    cattr_accessor :after
    
    def initialize app
      @app = app
      
      @requests            = 0
      @quit_after_requests = @@after || 50
    end
    
    def call env
      harakiri
      @app.call env
    end
    
    # Checks to see if it is time to honorably retire.
    #
    # If yes, kills itself (Unicorn will answer the request, honorably).
    #
    def harakiri
      @requests = @requests + 1
      Process.kill(:QUIT, Process.pid) if @requests > @quit_after_requests
    end
    
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
picky-0.0.9 lib/picky/rack/harakiri.rb
picky-0.0.8 lib/picky/rack/harakiri.rb
picky-0.0.7 lib/picky/rack/harakiri.rb
picky-0.0.6 lib/picky/rack/harakiri.rb
picky-0.0.5 lib/picky/rack/harakiri.rb
picky-0.0.4 lib/picky/rack/harakiri.rb
picky-0.0.3 lib/picky/rack/harakiri.rb
picky-0.0.2 lib/picky/rack/harakiri.rb