[Moscow.pm] perl cross-thead db con pool

Mons Anderson mons на cpan.org
Пт Фев 8 02:48:07 PST 2013


2013/2/8 Daniel Podolsky <onokonem на gmail.com>

> > Для Пг есть биндинг libpq. А в самой ней есть и пуллинг и треды и т.д.
> Мне, на самом деле, нужен свой пул, с дополнительными свойствами.
> Например - я хочу получать по некоему идентификатору определенный
> коннект из пула (в нем нужная транзакция открыта).
>
> Немножко оффтопика:

Коннект, в котором открыта транзакция бесполезен остальным.

Поэтому рассмотри интерфейс, когда ты берешь коннект из пула, работаешь с
ним и возвращаешь.

У меня по такой схеме сделан AE::DBD::Pool

псевдокод:

my $cnn = $pool->take;
$cnn -> do_job;
$cnn -> do_job;
$cnn -> do_job;
…
$pool->return( $cnn );


Но треды в перле такие, что написать его я не придумал, как. вот и
> интересуюсь - есть ли образцы для подражания.
>
>
мне кажется ничего сложного. обычный pool, только с блокировкой по треду.
libpq и, соответственно, DBD::Pg threadsafe

-- 
Best wishes,
Vladimir V. Perepelitsa aka Mons Anderson
<inthrax на gmail.com>, <mons на cpan.org>
http://github.com/Mons
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20130208/cf14468b/attachment-0001.html>


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