Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Dmitry Tsigelnik                     2:5020/400     13 Oct 2003  18:38:40
 To : All
 Subject : Mod_Perl and DB connection (Решение найдено)
 -------------------------------------------------------------------------------- 
 
 Привет всем еще раз!
 
 Короче ни одного дельного совета я не увидел и нашел свое решение!
 Я написал свой DB::Pool. Решение очень простое.
 Я организовал пул в виде очереди(FIFO).
 Всего два метода get_connection и free_connection
 
 при вызове get_connection мы пытаемся вытащить коннект из очереди,
 если он пингуется мы его возвращаем, если нет делаем shift @$pool 
 дальше. если очередь кончается, открываем новый коннект.
 
 При вызове free_connection возвращаем хэндлер в очередь. Если размер 
 очереди больше какого-то числа, то не возвращаем его в туда, что бы он 
 не разростался до бесконечности. Вот и все решение!!! Это будет 
 работать и в случае CGI и в mod_perl1 и mod_perl2. В первых 2-х случаем 
 будет гоняться по кругу один и тот же коннект, в последнем случае в 
 зависимости от нагрузки веб-сервера. Сюда можно так же добавить и 
 немного искуственного интелекта, т.е. если нагрузка за последние 
 несколько часов упала, то закрыть лищние коннекты. Так же можно 
 собирать статистику о разорванных коннектах и т.д.
 
 P.S. главное что бы не был включен Apache::DBI, иначе он все испортит
 
 --------------------
 Dmitry Tsigelnik
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Mod_Perl and DB connection (Решение найдено)   Dmitry Tsigelnik   13 Oct 2003 18:38:40 
Архивное /ru.perl/648897a1a2d1.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional