Class: Upfluence::HTTP::Server
- Inherits:
-
Object
- Object
- Upfluence::HTTP::Server
- Defined in:
- lib/upfluence/http/server.rb
Constant Summary collapse
- DEFAULT_OPTIONS =
{ server: :puma, Port: ENV['PORT'] || 8080, Host: '0.0.0.0', threaded: true, interfaces: [] }.freeze
Instance Method Summary collapse
-
#initialize(options = {}, &block) ⇒ Server
constructor
A new instance of Server.
- #serve ⇒ Object
Constructor Details
#initialize(options = {}, &block) ⇒ Server
Returns a new instance of Server.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/upfluence/http/server.rb', line 25 def initialize( = {}, &block) @options = DEFAULT_OPTIONS.dup.merge() opts = @options base_handler = Handler::Base.new(opts[:interfaces]) @builder = Builder.new do use Middleware::Logger use Middleware::ApplicationHeaders, base_handler use Middleware::HandleException use Upfluence.error_logger.middleware use Rack::ContentLength use Rack::Chunked use Rack::Lint if Upfluence.env.development? use Rack::TempfileReaper use Rack::ETag map '/healthcheck' do run(opts[:healthcheck_endpoint] || Endpoint::Healthcheck.new) end map '/base' do run_thrift Base::Base_service::BaseService::Processor, base_handler end instance_eval(&block) end @handler = Rack::Handler.get(@options[:server]) end |
Instance Method Details
#serve ⇒ Object
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/upfluence/http/server.rb', line 55 def serve ENV['RACK_ENV'] = Upfluence.env.to_s @handler.run(@builder, @options) do |server| server.threaded = @options[:threaded] if server.respond_to? :threaded= if server.respond_to?(:threadpool_size=) && @options[:threadpool_size] server.threadpool_size = @options[:threadpool_size] end end end |