Data::Throttler::Memcached - Memcached-Based Data::Throttler
my $t = Data::Throttler::Memcached->new( max_items => 10, interval => 60, cache => { data => '127.0.0.1:11211', # optional } ); $t->try_push( 'foo' ); $t->try_push( key => 'foo' );
Data::Throttler does a good job throttling data for you, but unfortunately it's not distributed -- that is, since the storage is in memory, if you have a system with multiple hosts, throttling will be done individually on each host.
To workaround this limitation, Data::Throttler::Memcached uses Cache::Memcached::Managed to store the actual data.
There's no locking mechanism when checking/incrementing counts. This means that each process could possibly overwrite another's value -- but since throttling is something that isn't "exact", I'm not considering this to be such a big issue.
We may in the future work around this problem by utilizing distributed locks like KeyedMutex. Patches welcome.
Creates a new instance of Data::Throttler::Memcached. Accepts the same arguments as Data::Throttler, plus the "cache" argument.
The cache argument must be a hashref, which contains the arguments passed to the cache backend. For example, if you wanted to change the data server, you can specify it like so:
cache => { data => 'my.data.host:11211' }
Copyright (c) 2007 Daisuke Maki <daisuke@endeworks.jp>
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
To install Data::Throttler::Memcached, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::Throttler::Memcached
CPAN shell
perl -MCPAN -e shell install Data::Throttler::Memcached
For more information on module installation, please visit the detailed CPAN module installation guide.