Каков наилучший способ создания постоянных соединений memcached под mod_perl?

Я знаю, что есть такой модуль, как Apache::DBI, который позволяет использовать постоянные подключения к базе данных под mod_perl.

Есть ли простой способ сделать что-то подобное? Не могли бы вы порекомендовать какой-нибудь пакет для пула memcached?


person John Jacobson    schedule 01.12.2011    source источник


Ответы (1)


Если вы посмотрите на исходный код Apache::DBI, вы увидите, что он просто помещает дескриптор базы данных в лексическую область видимости в верхней части пакета. Это достаточно просто сделать для Memcached. Создайте новый пакет с my $memcached; вверху, затем используйте метод init(), чтобы установить соединение и сохранить его в этом лексическом словаре. Затем используйте метод getConnection() для получения соединения в вашем коде. Этот метод должен проверить, живо ли соединение, и при необходимости переподключиться.

Наконец, настройте PerlChildInitHandler для вызова init() (см. Apache::DBI connect_on_init()).

person frezik    schedule 01.12.2011