NAME
Plack::Middleware::Timeout
SYNOPSIS
my $app = sub { ... };
Plack::Middleeare::Timeout->wrap(
$app,
timeout => sub { ... } || 60,
# optional callback to set the custom response
response => sub {
my ($response_obj,$execution_time) = @_;
$response_obj->code(HTTP_REQUEST_TIMEOUT);
$response_obj->body( encode_json({
timeout => 1,
other_info => {...},
}));
return $plack_response;
}
);
DESCRIPTION
Timeout any plack requests at an arbitrary time.
PARAMETERS
- timeout
-
Determines how we're going to get the timeout value, either subref returning a value or any value accepted by subroutine defined in Time::HiRes::alarm, default 120 seconds.
- response
-
Optional subroutine that receives two parameters, a Plack::Response object that we can further modify to fit our needs, if none is provided the middleware resolves to emitting a warning:
'Terminated request for uri '%s' due to timeout (%ds)'
AUTHOR
Tomasz Czepiel <tjmc@cpan.org>
LICENCE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.