[Moscow.pm] Non-blocking DBI или Coro::Mysql ?

Yury Zavarin yury.zavarin на gmail.com
Сб Май 7 13:28:51 PDT 2011


Я использую Coro::Mysql, вполне рабочее рабочее решение для mysql.
Достоинства в том, что оно не форкатется (насколько я знаю, AnyEvent::DBI
для этого делает форк), просто засовываешь в async свой запрос, он и будет
рабоать асинхронно.

Некоторые тонкости: нельзя делать (по случайности или еще как-то) второй раз
unblock на $dbh.
Второе: каждый хэндлер хоть и работает асинхронно, тем не менее не может
отправить два запроса сразу и ждать на каждый из них ответ. Поэтому нужно
быть аккуратным с использованием хэндлеров к базе -- либо использовать
семафоры для разграничения доступа, либо создавать при необходимости новый
коннект.

P. S. Ходят слухи, что у PostgreSQL есть нативное асинхронное API. Я не
проверял, но можете поковыряться.

2011/5/7 Social Fog <socialfog на mail.ru>

> Привет всем,
>
> Можно ли сделать так, чтобы DBI execute или do сразу отдавали управление
> без блокировки и ожидания ответа mysql?
>
> Я пока нашел Coro::Mysql - кто нибудь его пробывал?
>
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110508/3ed652a4/attachment.html>


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