AnyEvent-Pg-Pool-Multiserver
view release on metacpan or search on metacpan
example/ex.pl view on Meta::CPAN
my $result = shift;
my $error = shift;
if ( $error ) {
say "err $error->{error} with $error->{server_name} $error->{server_id}";
}
if ( $result ) {
say "server_id=$result->[ 0 ] value=$result->[ 1 ]";
}
$cv->send;
},
);
$cv->recv;
$cv->recv;
# single-server request to select row in hashref
$pool->selectrow_hashref(
query => 'SELECT val FROM ( SELECT 1 AS val ) tmp WHERE tmp.val = $1;',
args => [ 1 ],
server_id => 1,
cb => sub {
my $result = shift;
my $error = shift;
if ( $error ) {
say "err $error->{error} with $error->{server_name} $error->{server_id}";
}
if ( $result ) {
say "server_id=$result->{_server_id} value=$result->{val}";
}
$cv->send;
},
);
$cv->recv;
$cv->recv;
# single-server request to do something
$pool->do(
query => 'UPDATE table SET column = 1 WHERE id = $1;',
args => [ 1 ],
server_id => 1,
cb => sub {
my $result = shift;
my $error = shift;
if ( $error ) {
say "err $error->{error} with $error->{server_name} $error->{server_id}";
}
if ( $result ) {
say "server_id=$result->[ 0 ] updated=$result->[ 1 ]";
}
$cv->send;
},
);
$cv->recv;
$cv->recv;
# local-server request to do something
$pool->do(
query => 'UPDATE table SET column = 1 WHERE id = $1;',
args => [ 1 ],
server_id => $pool->local(),
cb => sub {
my $result = shift;
my $error = shift;
if ( $error ) {
say "err $error->{error} with $error->{server_name} $error->{server_id}";
}
if ( $result ) {
say "server_id=$result->[ 0 ] updated=$result->[ 1 ]";
}
$cv->send;
},
);
$cv->recv;
( run in 0.472 second using v1.01-cache-2.11-cpan-2398b32b56e )