Mojo::Server::HypnotoaUser)Contributed Perl DocumenMojo::Server::Hypnotoad(3p)



NAME
       Mojo::Server::Hypnotoad - ALL GLORY TO THE HYPNOTOAD!

SYNOPSIS
         use Mojo::Server::Hypnotoad;

         my $toad = Mojo::Server::Hypnotoad->new;
         $toad->run('myapp.pl', 'hypnotoad.conf');

DESCRIPTION
       Mojo::Server::Hypnotoad is a full featured UNIX optimized preforking
       async io HTTP 1.1 and WebSocket server built around the very well
       tested and reliable Mojo::Server::Daemon with "IPv6", "TLS", "Bonjour",
       "epoll", "kqueue" and hot deployment support that just works.

       Optional modules IO::KQueue, IO::Epoll, IO::Socket::IP, IO::Socket::SSL
       and Net::Rendezvous::Publish are supported transparently and used if
       installed.

       See Mojolicious::Guides::Cookbook for deployment recipes.

SIGNALS
       You can control "hypnotoad" at runtime with signals.

   Manager
       "INT", "TERM"
         Shutdown server immediately.

       "QUIT"
         Shutdown server gracefully.

       "TTIN"
         Increase worker pool by one.

       "TTOU"
         Decrease worker pool by one.

       "USR2"
         Attempt zero downtime software upgrade (hot deployment) without
         losing any incoming connections.

           Manager (old)
           |- Worker [1]
           |- Worker [2]
           |- Worker [3]
           |- Worker [4]
           `- Manager
              |- Worker [1]
              |- Worker [2]
              |- Worker [3]
              `- Worker [4]

         The new manager will automatically send a "QUIT" signal to the old
         manager and take over serving requests after starting up
         successfully.

   Worker
       "INT", "TERM"
         Stop worker immediately.

       "QUIT"
         Stop worker gracefully.

CONFIGURATION
       "Hypnotoad" configuration files are normal Perl scripts returning a
       hash.

         # hypnotoad.conf
         {listen => ['http://*:3000', 'http://*:4000'], workers => 10};

       The following parameters are currently available.

   "accepts"
         accepts => 100

       Maximum number of connections a worker is allowed to accept before
       stopping gracefully, defaults to 1000.  Setting the value to 0 will
       allow workers to accept new connections infinitely.

   "backlog"
         backlog => 128

       Listen backlog size, defaults to "SOMAXCONN".

   "clients"
         clients => 100

       Maximum number of parallel client connections per worker process,
       defaults to 1000.

   "graceful_timeout"
         graceful_timeout => 15

       Time in seconds a graceful worker stop may take before being forced,
       defaults to 30.

   "group"
         group => 'staff'

       Group name for worker processes.

   "heartbeat_interval"
         heartbeat_interval => 3

       Heartbeat interval in seconds, defaults to 5.

   "heartbeat_timeout"
         heartbeat_timeout => 5

       Time in seconds before a worker without a heartbeat will be stopped,
       defaults to 2.

   "keep_alive_requests"
         keep_alive_requests => 50

       Number of keep alive requests per connection, defaults to 25.

   "keep_alive_timeout"
         keep_alive_timeout => 10

       Time in seconds a connection may be idle, defaults to 5.

   "listen"
         listen => ['http://*:80']

       List of ports and files to listen on, defaults to "http://*:8080".

   "lock_file"
         lock_file => '/tmp/hypnotoad.lock'

       Full path to accept mutex lock file, defaults to a random temporary
       file.

   "pid_file"
         pid_file => '/var/run/hypnotoad.pid'

       Full path to PID file, defaults to "hypnotoad.pid" in the same
       directory as the application.

   "proxy"
         proxy => 1

       Activate reverse proxy support, defaults to the value of
       "MOJO_REVERSE_PROXY".

   "upgrade_timeout"
         upgrade_timeout => 15

       Time in seconds a zero downtime software upgrade may take before being
       aborted, defaults to 30.

   "user"
         user => 'sri'

       User name for worker processes.

   "websocket_timeout"
         websocket_timeout => 150

       Time in seconds a WebSocket connection may be idle, defaults to 300.

   "workers"
         workers => 10

       Number of worker processes, defaults to 4.  A good rule of thumb is two
       worker processes per cpu core.

METHODS
       Mojo::Server::Hypnotoad inherits all methods from Mojo::Base and
       implements the following new ones.

   "run"
         $toad->run('script/myapp', 'hypnotoad.conf');

       Start server.

SEE ALSO
       Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.



perl v5.12.2                      2011-03-11       Mojo::Server::Hypnotoad(3p)
