2010/5/7 Mons Anderson <[email protected]>:
> 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
> <[email protected]> / #99779956 / [email protected]
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
--
Best regards, Ruslan.
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org