Take me over?
NAME
POE::Component::ResourcePool::Resource::TokenBucket - Token bucket based resource (for throttling).
SYNOPSIS
use POE::Component::ResourcePool::Resource::TokenBucket;
my $tb = POE::Component::ResourcePool::Resource::TokenBucket->new(
# see Algorithm::TokenBucket
rate => $per_second,
burst => $max_item_size,
);
my $pool = POE::Component::ResourcePool->new(
resources => {
rate_limit => $tb,
},
);
# requests can ask the rate_limit resource to throttle them now
DESCRIPTIONS
This class implements an Algorithm::TokenBucket based resource for POE::Component::ResourcePool.
Requests are numeric value based, and will be served as the token bucket fills.
This is useful for rate limiting of jobs in a time based way.
ATTRIBUTES
- alias
-
The POE alias for the internal session.
Comes from MooseX::POE::Aliased.
The alias can be set explicitly but is not yet useful for anything (there is no POE side API for this object, all session states are internal).
- token_bucket
-
The Algorithm::TokenBucket object used to calculate the rate limiting.
This is readonly.
- rate
- burst
-
The numerical parameters for Algorithm::TokenBucket used to generate
token_bucket
.These are also used for
could_allocate
, etc.
METHODS
See POE::Component::ResourcePool::Resource for the resource API.
SEE ALSO
POE, MooseX::POE, Algorithm::TokenBucket, POE::Component::ResourcePool.
VERSION CONTROL
This module is maintained using Darcs. You can get the latest version from http://nothingmuch.woobling.org/code, and use darcs send
to commit changes.
AUTHOR
Yuval Kogman <nothingmuch@woobling.org>
COPYRIGHT
Copyright (c) 2008 Yuval Kogman. All rights reserved
This program is free software; you can redistribute
it and/or modify it under the same terms as Perl itself.