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