NAME
Net::ZooKeeper::Semaphore
DESCRIPTION
Distributed semaphores via Apache ZooKeeper
SYNOPSIS
my
$fqdn
= Sys::Hostname::FQDN::fqdn();
my
$zkh
= Net::ZooKeeper->new(...);
my
$cpu_semaphore
= Net::ZooKeeper::Semaphore->new(
count
=> 1,
path
=>
"/semaphores/${fqdn}_cpu"
,
total
=> Sys::CPU::cpu_count(),
zkh
=>
$zkh
,
);
my
%mem_info
= Linux::MemInfo::get_mem_info();
my
$mem_semaphore
= Net::ZooKeeper::Semaphore->new(
count
=> 4E6,
# 4GB
data
=> $$,
path
=>
"/semaphores/${fqdn}_mem"
,
total
=>
$mem_info
{MemTotal},
zkh
=>
$zkh
,
);
undef
$cpu_semaphore
;
# to delete lease
METHODS
new(%options)
Object creation doesn't block. Undef is returned if it isn't possible to acquire a lease. An exception is raised on any ZooKeeper errors. A lease is held as long as the object lives.
Parameters:
- count
-
Resource amount to be leased. Must be an integer (negative values are to be added to total).
- data
-
Optional. Data for lease znode. Must be a string, default is '0'.
- path
-
Path in ZooKeeper that identifies the semaphore. If it doesn't exist, it will be created. Also path/lock and path/leases will be created.
- total
-
Total amount of available resource. If there are any active leases for the given path that were created with a different total, an exception will be raised.
- zkh
-
Net::ZooKeeper handle object
AUTHOR
Oleg Komarov <komarov
@cpan
.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Yandex LLC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 59:
'=item' outside of any '=over'
- Around line 179:
You forgot a '=back' before '=head1'