On Friday 07 May 2010 14:32:24 Ruslan Zakirov wrote:
> 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, но мне кажется, что можно попробовать что-то такое.

Да, такое будет работать.
только я-бы все таки поставил что-то типа after => 0.01, interval => 0.05 ;)

-- 
Mons Anderson aka Vladimir Perepelitsa
<[email protected]> / #99779956 / [email protected]
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить