Как выборочно запустить и завершить постоянный Apache :: DBI для perl с клиента / браузера? - PullRequest
0 голосов
/ 29 июля 2010

Этот вопрос относится к нашему веб-приложению, которое использует perl, apache, Apache :: DBI и базу данных (MySQL, SQLite или что-либо еще).

Мы знаем, что Apache :: DBIиспользуется для создания постоянных соединений БД.Эти соединения живут в памяти с момента запуска веб-сервера Apache до момента его выключения.

Мой вопрос: возможно ли создание постоянных соединений БД в любое произвольное время между началом и окончанием процесса Apache?Мы не хотим иметь постоянные соединения на протяжении всего жизненного цикла веб-сервера Apache.

Нам необходимо создавать постоянные соединения в любое время после запуска веб-сервера Apache.И нам нужно завершать постоянные соединения в любое время до выключения веб-сервера Apache.

1 Ответ

0 голосов
/ 29 июля 2010

Я не совсем уверен, как это сделать.Но я бы предложил создать модуль, специально для запуска вашего соединения, его использования и завершения.Внутри него вы получаете ваше соединение в виде скаляра, скажем, $ dbh, которое будет общим для всех, кто вызывает функции DBI (пересылает запрос на ваш сервер mysql).


package myBDDConnection;
use DBI;
our @EXPORT_OK = qw(&Query);

our $dbh = Connect();

sub Connect(){
my $dbh = DBI->connect(...);
...
return $dbh;
}
sub Query() {
 if(!$dbh) {$dbh=Connect()}
  //then perform query
}

sub Close(){
 $dbh->close() //or finish, i'm not sure
}

, затем в другие модули вы импортируетеmyBDDConnection и выполняйте запросы с помощью функции Query из предыдущего модуля.

...