Net::Server::PreForkSimple - Net::Server personality |
Net::Server::PreForkSimple - Net::Server personality
use Net::Server::PreForkSimple; @ISA = qw(Net::Server::PreFork);
sub process_request { #...code... }
__PACKAGE__->run();
Please read the pod on Net::Server first. This module is a personality, or extension, or sub class, of the Net::Server module.
This personality binds to one or more ports and then forks
max_servers
child processes. The server will make sure
that at any given time there are always max_servers
available to receive a client request. Each of
these children will process up to max_requests
client
connections. This type is good for a heavily hit site that can
keep max_servers
processes dedicated to the serving.
(Multi port accept defaults to using flock to serialize the
children).
Please see the sample listed in Net::Server.
In addition to the command line arguments of the Net::Server base class, Net::Server::PreFork contains several other configurable parameters.
Key Value Default max_servers \d+ 50 max_requests \d+ 1000
serialize (flock|semaphore|pipe) undef # serialize defaults to flock on multi_port or on Solaris lock_file "filename" POSIX::tmpnam
check_for_dead \d+ 30
max_dequeue \d+ undef check_for_dequeue \d+ undef
Net::Server::PreFork
allows for the use of a
configuration file to read in server parameters. The format
of this conf file is simple key value pairs. Comments and
white space are ignored.
#-------------- file test.conf --------------
### server information max_servers 80
max_requests 1000
### user and group to become user somebody group everybody
### logging ? log_file /var/log/server.log log_level 3 pid_file /tmp/server.pid
### access control allow .+\.(net|com) allow domain\.com deny a.+
### background the process? background 1
### ports to bind host 127.0.0.1 port localhost:20204 port 20205
### reverse lookups ? # reverse_lookups on
#-------------- file test.conf --------------
Process flow follows Net::Server until the loop phase. At
this point max_servers
are forked and wait for
connections. When a child accepts a connection, finishs
processing a client, or exits, it relays that information to
the parent, which keeps track and makes sure there are
always max_servers
running.
The PreForkSimple server has the following hooks in addition to the hooks provided by the Net::Server base class. See the Net::Server manpage
$self->child_init_hook()
$self->child_finish_hook()
$self->run_dequeue()
Paul T. Seamons paul@seamons.com
Please see also the Net::Server::Fork manpage, the Net::Server::INET manpage, the Net::Server::PreFork manpage, the Net::Server::MultiType manpage, the Net::Server::Single manpage the Net::Server::SIG manpage the Net::Server::Daemonize manpage the Net::Server::Proto manpage
Net::Server::PreForkSimple - Net::Server personality |