AnyEvent-Pg-Pool-Multiserver

 view release on metacpan or  search on metacpan

example/ex.pl  view on Meta::CPAN


$pool->selectall_arrayref(
  query  => 'SELECT val FROM ( SELECT 1 AS val ) tmp WHERE tmp.val = $1;',
  args   => [ 1 ],
  cb     => sub {
    my $results = shift;
    my $errors  = shift;

    if ( $errors ) {
      foreach my $srv ( @$errors ) {
        say "err $srv->{error} with $srv->{server_name} $srv->{server_id}";
      }
    }

    if ( $results ) {
      foreach my $val ( @$results ) {
        say "server_id=$val->{_server_id} value=$val->{val}";
      }
    }

    $cv->send;
  },
);

$cv->recv;

$cv = AE::cv;

example/ex.pl  view on Meta::CPAN

$pool->selectall_arrayref(
  query     => 'SELECT val FROM ( SELECT 1 AS val ) tmp WHERE tmp.val = $1;',
  args      => [ 1 ],
  server_id => 1,
  cb        => sub {
    my $results = shift;
    my $errors  = shift;

    if ( $errors ) {
      foreach my $srv ( @$errors ) {
        say "err $srv->{error} with $srv->{server_name} $srv->{server_id}";
      }
    }

    if ( $results ) {
      foreach my $val ( @$results ) {
        say "server_id=$val->{_server_id} value=$val->{val}";
      }
    }

    $cv->send;
  },
);

$cv->recv;

$cv = AE::cv;

example/ex.pl  view on Meta::CPAN


$pool->selectall_arrayref(
  query  => 'SELECT val FROM ( SELECT 1 AS val ) tmp WHERE tmp.val = $1;',
  args   => [ 1 ],
  cb     => sub {
    my $results = shift;
    my $errors  = shift;

    if ( $errors ) {
      foreach my $srv ( @$errors ) {
        say "err $srv->{error} with $srv->{server_name} $srv->{server_id}";
      }
    }

    if ( $results ) {
      foreach my $val ( @$results ) {
        say "server_id=$val->{_server_id} value=$val->{val}";
      }
    }

    $cv->send;
  },
  cb_server => sub {
    my $params = { @_ };

    my $result_of_main_request = $params->{result};

example/ex.pl  view on Meta::CPAN


$pool->selectrow_array(
  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->[ 0 ] value=$result->[ 1 ]";
    }

    $cv->send;
  },
);

$cv->recv;

$cv->recv;

example/ex.pl  view on Meta::CPAN


$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;

example/ex.pl  view on Meta::CPAN


$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;

example/ex.pl  view on Meta::CPAN


$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;

lib/AnyEvent/Pg/Pool/Multiserver.pm  view on Meta::CPAN


  $pool->selectall_arrayref(
    query  => 'SELECT val FROM ( SELECT 1 AS val ) tmp WHERE tmp.val = $1;',
    args   => [ 1 ],
    cb     => sub {
      my $results = shift;
      my $errors  = shift;

      if ( $errors ) {
        foreach my $srv ( @$errors ) {
          say "err $srv->{error} with $srv->{server_name} $srv->{server_id}";
        }
      }

      if ( $results ) {
        foreach my $val ( @$results ) {
          say "server_id=$val->{_server_id} value=$val->{val}";
        }
      }
    },
  );

  # single-server request

  $pool->selectall_arrayref(
    query     => 'SELECT val FROM ( SELECT 1 AS val ) tmp WHERE tmp.val = $1;',
    args      => [ 1 ],

lib/AnyEvent/Pg/Pool/Multiserver.pm  view on Meta::CPAN


  $pool->selectrow_array(
    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->[ 0 ] value=$result->[ 1 ]";
      }
    },
  );

  # 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}";
      }
    },
  );

  # 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 ]";
      }
    },
  );

  # local-server request to do something

  $pool->do(
    query     => 'UPDATE table SET column = 1 WHERE id = $1;',
    args      => [ 1 ],
    server_id => $pool->local(),



( run in 1.258 second using v1.01-cache-2.11-cpan-483215c6ad5 )