class PhusionPassenger::Rack::OutOfBandGc
Public Class Methods
new(app, *args)
click to toggle source
Usage:
OutOfBandGc.new(app, frequency, logger = nil) OutOfBandGc.new(app, options = {})
# File lib/phusion_passenger/rack/out_of_band_gc.rb, line 34 def initialize(app, *args) @app = app if args.size == 0 || (args.size == 1 && args[0].is_a?(Hash)) # OutOfBandGc.new(app, options = {}) initialize_with_options(args[0] || {}) else # OutOfBandGc.new(app, frequency, logger = nil) initialize_legacy(*args) end end
Public Instance Methods
call(env)
click to toggle source
# File lib/phusion_passenger/rack/out_of_band_gc.rb, line 45 def call(env) status, headers, body = @app.call(env) case @strategy when :counting @mutex.synchronize do @request_count += 1 if @request_count == @frequency @request_count = 0 headers['X-Passenger-Request-OOB-Work'] = 'true' end end when :gctools_oobgc if GC::OOB.dry_run headers['X-Passenger-Request-OOB-Work'] = 'true' end else raise "Unrecognized Out-Of-Band GC strategy #{@strategy.inspect}" end [status, headers, body] end