mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
Doc Puma::Runner, Puma::Single, and Puma::Cluster
This commit is contained in:
parent
41caf3d666
commit
c26ebe6101
4 changed files with 22 additions and 0 deletions
|
@ -9,6 +9,9 @@ module Puma
|
|||
# If read buffering is not done, and no other read buffering is performed (such as by an application server
|
||||
# such as nginx) then the application would be subject to a slow client attack.
|
||||
#
|
||||
# Each Puma "worker" process has its own Reactor. For example if you start puma with `$ puma -w 5` then
|
||||
# it will have 5 workers and each worker will have it's own reactor.
|
||||
#
|
||||
# For a graphical representation of how the reactor works see [architecture.md](https://github.com/puma/puma/blob/master/docs/architecture.md#connection-pipeline).
|
||||
#
|
||||
# ## Reactor Flow
|
||||
|
|
|
@ -2,6 +2,9 @@ require 'puma/server'
|
|||
require 'puma/const'
|
||||
|
||||
module Puma
|
||||
# Generic class that is used by `Puma::Cluster` and `Puma::Single` to
|
||||
# serve requests. This class spawns a new instance of `Puma::Server` via
|
||||
# a call to `start_server`.
|
||||
class Runner
|
||||
def initialize(cli, events)
|
||||
@launcher = cli
|
||||
|
|
|
@ -23,6 +23,15 @@ require 'socket'
|
|||
module Puma
|
||||
|
||||
# The HTTP Server itself. Serves out a single Rack app.
|
||||
#
|
||||
# This class is used by the `Puma::Single` and `Puma::Cluster` classes
|
||||
# to generate one or more `Puma::Server` instances capable of handling requests.
|
||||
# Each Puma process will contain one `Puma::Server` instacne.
|
||||
#
|
||||
# The `Puma::Server` instance pulls requests from the socket, adds them to a
|
||||
# `Puma::Reactor` where they get eventually passed to a `Puma::ThreadPool`.
|
||||
#
|
||||
# Each `Puma::Server` will have one reactor and one thread pool.
|
||||
class Server
|
||||
|
||||
include Puma::Const
|
||||
|
|
|
@ -3,6 +3,13 @@ require 'puma/detect'
|
|||
require 'puma/plugin'
|
||||
|
||||
module Puma
|
||||
# This class is instantiated by the `Puma::Launcher` and used
|
||||
# to boot and serve a Ruby application when no puma "workers" are needed
|
||||
# i.e. only using "threaded" mode. For example `$ puma -t 1:5`
|
||||
#
|
||||
# At the core of this class is running an instance of `Puma::Server` which
|
||||
# gets created via the `start_server` method from the `Puma::Runner` class
|
||||
# that this inherits from.
|
||||
class Single < Runner
|
||||
def stats
|
||||
b = @server.backlog || 0
|
||||
|
|
Loading…
Reference in a new issue