| FCGI-Engine documentation | Contained in the FCGI-Engine distribution. |
FCGI::Engine::Manager::Server - An abstraction to represent a single FCGI::Engine server
Nothing here to see really, this just models the individual server information in the config file for FCGI::Engine::Manager. It also handles creating the command line as well.
All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.
Stevan Little <stevan@iinteractive.com>
Copyright 2007-2010 by Infinity Interactive, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| FCGI-Engine documentation | Contained in the FCGI-Engine distribution. |
package FCGI::Engine::Manager::Server; use Moose; use MooseX::Daemonize::Pid::File; use FCGI::Engine::Types; our $VERSION = '0.18'; our $AUTHORITY = 'cpan:STEVAN'; has 'name' => ( is => 'ro', isa => 'Str', lazy => 1, default => sub { ((shift)->scriptname . '.server') } ); has 'socket' => ( is => 'ro', isa => 'FCGI::Engine::Listener', coerce => 1, required => 1, ); has $_ => ( is => 'ro', isa => 'Path::Class::File', coerce => 1, required => 1, ) for qw[ scriptname pidfile ]; has 'nproc' => ( is => 'ro', isa => 'Int', default => sub { 1 } ); has 'additional_args' => ( is => 'ro', isa => 'ArrayRef', auto_deref => 1, predicate => 'has_additional_args' ); ## ... internal attributes has 'pid_obj' => ( is => 'ro', isa => 'MooseX::Daemonize::Pid::File', lazy => 1, default => sub { MooseX::Daemonize::Pid::File->new(file => (shift)->pidfile) }, clearer => 'remove_pid_obj', ); ## methods ... sub construct_command_line { my $self = shift; return ("perl", ($self->has_additional_args ? $self->additional_args : ()), $self->scriptname, "--nproc", $self->nproc, "--pidfile", $self->pidfile, "--listen", $self->socket, "--daemon"); } # NOTE: # perhaps the server status information # should also go in here, so that we can # keep it all in one place. # - SL 1; __END__