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: [], push_gateway_url: ENV['PUSH_GATEWAY_URL'], push_gateway_interval: 15, # sec app_name: ENV['APP_NAME'] || 'uhttp-rb-server', unit_name: ENV['UNIT_NAME'] || 'uhttp-rb-server-anonymous', debug: ENV['DEBUG'] }.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.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/upfluence/http/server.rb', line 35 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::Prometheus 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 use Middleware::CORS if Upfluence.env.development? map '/healthcheck' do run(opts[:healthcheck_endpoint] || Endpoint::Healthcheck.new) end map '/base' do run_thrift Base::Base_service::BaseService::Processor, base_handler end map '/debug' do run Endpoint::Profiler.new end if opts[:debug] instance_eval(&block) end @handler = Rack::Handler.get(@options[:server]) end |
Instance Method Details
#serve ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/upfluence/http/server.rb', line 71 def serve ENV['RACK_ENV'] = Upfluence.env.to_s Thread.new { run_prometheus_exporter } if @options[:push_gateway_url] @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 |