The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.