SYNOPSIS

Usage same as FCGI::ProcManager:

    use CGI::Fast;
    use FCGI::ProcManager::MaxRequests;

    my $m = FCGI::ProcManager::MaxRequests->new({
        n_processes => 10,
        max_requests => 100,
    });
    $m->manage;

    while( my $cgi = CGI::Fast->new() ) {
        $m->pm_pre_dispatch();
        ...
        $m->pm_post_dispatch();
    }

DESCRIPTION

FCGI-ProcManager-MaxRequests is a extension of FCGI-ProcManager that allow restrict fastcgi processes to process only limiting number of requests. This may help avoid growing memory usage and compensate memory leaks.

This module subclass FCGI::ProcManager. After server process max_requests number of requests, it simple exit, and manager starts another server process. Maximum number of requests can be set from \s-1PM_MAX_REQUESTS\s0 environment variable, max_requests - constructor argument and max_requests accessor.

OVERLOADED METHODS

new

my $pm = FCGI::ProcManager::MaxRequests->new(\%args);

Constructs new proc manager object.

max_requests

$pm->max_requests($max_requests); my $max_requests = $pm->max_requests;

Set/get current max_requests value.

handling_init

Initialize requests counter after new worker process forks.

pm_post_dispatch

Do all work. Decrements requests counter after each request and exit worker when needed.

USING WITH CATALYST

At this time, Catalyst::Engine::FastCGI do not allow set any args to FCGI::ProcManager subclass constructor. Because of this we should use environment \s-1PM_MAX_REQUESTS\s0 ;-)

PM_MAX_REQUESTS=100 ./script/myapp_fastcgi.pl -n 10 -l <host>:<port> -d -M FCGI::ProcManager::MaxRequests

RELATED TO FCGI::ProcManager::MaxRequests…

You can also see FCGI::Spawn, but it don't support \s-1TCP\s0 sockets and try use CGI::Fast...

AUTHOR

Vladimir Timofeev, \*(C`<vovkasm at gmail.com>\*(C'

BUGS

Please report any bugs or feature requests to \*(C`bug-fcgi-procmanager-maxrequests at rt.cpan.org\*(C', or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=FCGI-ProcManager-MaxRequests <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=FCGI-ProcManager-MaxRequests>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc FCGI::ProcManager::MaxRequests

You can also look for information at:

  • \s-1RT:\s0 \s-1CPAN\s0's request tracker http://rt.cpan.org/NoAuth/Bugs.html?Dist=FCGI-ProcManager-MaxRequests <http://rt.cpan.org/NoAuth/Bugs.html?Dist=FCGI-ProcManager-MaxRequests>

  • AnnoCPAN: Annotated \s-1CPAN\s0 documentation http://annocpan.org/dist/FCGI-ProcManager-MaxRequests <http://annocpan.org/dist/FCGI-ProcManager-MaxRequests>

  • \s-1CPAN\s0 Ratings http://cpanratings.perl.org/d/FCGI-ProcManager-MaxRequests <http://cpanratings.perl.org/d/FCGI-ProcManager-MaxRequests>

  • Search \s-1CPAN\s0 http://search.cpan.org/dist/FCGI-ProcManager-MaxRequests/ <http://search.cpan.org/dist/FCGI-ProcManager-MaxRequests/>

  • Source code repository http://svn.vovkasm.org/FCGI-ProcManager-MaxRequests <http://svn.vovkasm.org/FCGI-ProcManager-MaxRequests>

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2008 Vladimir Timofeev.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.