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

NAME

KeyedMutex::Memcached - An interprocess keyed mutex using memcached

SYNOPSIS

use KeyedMutex::Memcached;

my $key   = 'query:XXXXXX';
my $cache = Cache::Memcached::Fast->new( ... );
my $mutex = KeyedMutex::Memcached->new( cache => $cache );

until ( my $value = $cache->get($key) ) {
  {
    if ( my $lock = $mutex->lock( $key, 1 ) ) {
      #locked read from DB
      $value = get_from_db($key);
      $cache->set($key, $value);
      last;
    }
  };
}

DESCRIPTION

KeyedMutex::Memcached is an interprocess keyed mutex using memcached. This module is inspired by KeyedMutex.

METHODS

new( %args )

Following parameters are recognized.

lock($key, [ $use_raii ])

Get lock by each key. When getting lock successfully, returns 1, on failed returns 0. If use_raii is being set true, return Scope::Guard object as RAII.

locked

Which is the object has locked.

release

Release lock.

AUTHOR

Toru Yamaguchi zigorou@cpan.org

SEE ALSO

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.