Class: Async::App::WebServer

Inherits:
Object
  • Object
show all
Includes:
Logger
Defined in:
lib/async/app/web_server.rb

Defined Under Namespace

Classes: HealthApp, MetricsApp, Router

Instance Method Summary collapse

Constructor Details

#initialize(metrics_prefix:, port: 8080) ⇒ WebServer

Returns a new instance of WebServer.



6
7
8
9
10
11
12
# File 'lib/async/app/web_server.rb', line 6

def initialize(metrics_prefix:, port: 8080)
  @router = Async::App::WebServer::Router.new(
    MetricsApp.new(metrics_prefix:),
    HealthApp.new
  )
  @endpoint = Async::HTTP::Endpoint.parse("http://0.0.0.0:#{port}")
end

Instance Method Details

#runObject



14
15
16
17
# File 'lib/async/app/web_server.rb', line 14

def run
  Async { Async::HTTP::Server.new(@router, @endpoint).run }
  info { "Started on #{@endpoint.url}" }
end