[Moscow.pm] DevConf

Ruslan Zakirov ruslan.zakirov на gmail.com
Пт Май 7 03:32:24 PDT 2010


2010/5/7 Mons Anderson <mons на cpan.org>:
> On Friday 07 May 2010 00:22:12 Dmitry Karasik wrote:
>>  http://search.cpan.org/~turnstep/DBD-Pg-2.17.1/Pg.pm#Asynchronous_Queries
>>
>> я тоже )
>
> Беда этой штуки в необходимости поллинга.
> Я вынужден периодически проверять "а нет-ли данных?"
> В случае форкнутого процесса я получаю событие о том, что данные есть, сразу
> по получению данных.

Я так понимаю, что иначе придется привязать DBD::Pg к какой-то
реализации, а так можно самому сделать обертку:

async_sql( $sql, sub { обработка результатов } );

sub async_sql {
  my ($sql, $cb) = @_;
  my $sth = $dbh->prepare($sql, {pg_async => PG_ASYNC});
  $sth->execute;
  my $w;
  $w = AnyEvent->timer (after => 0.5, interval => 1, cb => sub {
      return unless $sth->pg_ready;
      undef $w; # можно так удалить таймер?
      return $cb->( $sth->pg_result );
  };
  return;
}

Что-то типа такого заработает? Нет у меня нормальной практики c
AnyEvent, но мне кажется, что можно попробовать что-то такое.

> --
> Mons Anderson aka Vladimir Perepelitsa
> <mons на cpan.org> / #99779956 / quanth на irc.freenode.net
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Best regards, Ruslan.


Подробная информация о списке рассылки Moscow-pm