On 01/03/2011 04:48 PM, Jeff Anderson wrote:
the goal being that each child will not have to hit a database for every
request.
If the reason behind not hitting the database on each request is because
you don't want to impact your page-response times, know that the Cleanup
phase happens after the response has been sent to the client.
The below demonstration assigns a cleanup handler which sleeps for 3
seconds. You will notice that your pages still load before the snooze
handler is run.
# ---- Source from: .../httpd.conf ----
PerlModule Apache2::Testing
PerlCleanupHandler Apache2::Testing->snooze_handler
# ---- Source from: .../Apache2/Testing.pm ----
package Apache2::Testing;
use strict;
use ModPerl::Util;
our $Seconds = 3;
sub snooze_handler {
my $phase = ModPerl::Util::current_callback();
warn sprintf("[%d] %s: is sleeping for %d seconds.\n", $$, $phase, $Seconds);
sleep $Seconds;
warn sprintf("[%d] %s: is now awake.\n", $$, $phase);
}
1;