Sha256: 037cb6e983c309968493cb57d57613aeb68f75f827935e0a2e3f33465884705c

Contents?: true

Size: 1.04 KB

Versions: 24

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module GoodJob
  class ProbeServer
    class WebrickHandler
      def initialize(app, options = {})
        @app    = app
        @port   = options[:port]
        @logger = options[:logger]

        # Workaround for rack >= 3.1.x as auto-loading of rack/handler was removed.
        # We should move to rackup in the long run.
        # See https://github.com/rack/rack/pull/1937.
        @handler = begin
          require 'rackup/handler'
          ::Rackup::Handler.get('webrick')
        rescue LoadError
          require "rack/handler"
          ::Rack::Handler.get('webrick')
        end
      end

      def stop
        @handler&.shutdown
      end

      def running?
        @handler&.instance_variable_get(:@server)&.status == :Running
      end

      def build_future
        Concurrent::Future.new(args: [@handler, @port, GoodJob.logger]) do |thr_handler, thr_port, thr_logger|
          thr_handler.run(@app, Port: thr_port, Host: '0.0.0.0', Logger: thr_logger, AccessLog: [])
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
good_job-4.8.2 lib/good_job/probe_server/webrick_handler.rb
good_job-4.8.1 lib/good_job/probe_server/webrick_handler.rb
good_job-4.8.0 lib/good_job/probe_server/webrick_handler.rb
good_job-4.7.0 lib/good_job/probe_server/webrick_handler.rb
good_job-4.6.0 lib/good_job/probe_server/webrick_handler.rb
good_job-4.5.1 lib/good_job/probe_server/webrick_handler.rb
good_job-4.5.0 lib/good_job/probe_server/webrick_handler.rb
good_job-4.4.2 lib/good_job/probe_server/webrick_handler.rb
good_job-4.4.1 lib/good_job/probe_server/webrick_handler.rb
good_job-4.4.0 lib/good_job/probe_server/webrick_handler.rb
good_job-4.3.0 lib/good_job/probe_server/webrick_handler.rb
good_job-4.2.1 lib/good_job/probe_server/webrick_handler.rb
good_job-4.2.0 lib/good_job/probe_server/webrick_handler.rb
good_job-4.1.1 lib/good_job/probe_server/webrick_handler.rb
good_job-4.1.0 lib/good_job/probe_server/webrick_handler.rb
good_job-3.99.1 lib/good_job/probe_server/webrick_handler.rb
good_job-4.0.3 lib/good_job/probe_server/webrick_handler.rb
good_job-4.0.2 lib/good_job/probe_server/webrick_handler.rb
good_job-4.0.1 lib/good_job/probe_server/webrick_handler.rb
good_job-4.0.0 lib/good_job/probe_server/webrick_handler.rb