Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] mod_perl



On Wed, 4 Oct 2000, Andrey Brindeew wrote:

> From: Andrey Brindeew <abr@xxxxxxx>
> Subject: [apache-talk] mod_perl
> X-Mailer: XFMail 1.4.4 on Linux
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> 
> Hello!
> 
> Что-то я совсем запутался в сабже. Как под него писать "по-нормальному"?
> Т.е. не использовать Apache::Registry в качестве среды для эмуляции CGI.

По-нормальному - все делать в виде модулей.

 
> Конкретный вопрос: насчет Perl handlers: один хэндлер должен обрабатывать много
> скриптов (все?) или один? Вопрос, собственно возник из-за database persistant

Если у тебя все сделано в виде модулей, то у тебя нет такого понятия как
"скрипт". Есть понятие location или URI, которая есть некая строка,
указанная пользователем в качестве URL, либо есть shtml-файлы, содержащие
<!--#perl sub=Module::sub arg=...-->

Один и тот же хэндлер может, естественно, обрабатывать много URL.
Как он их будет различать - его глубокое личное дело.
Он может, например, вытащить uri из переданного к нему объекта
Apache::Request и сам ее проанализировать.


> connection. Если каждый handler обслуживает один скрипт, тогда имеем
> максимальный оверхэд в размере <кол-во детей Апача> * <кол-во скриптов> *
> <кол-во коннектов в одном скрипте>, что не есть good.

Естественно. Persistent database connection имеют смысл если у тебя по
одной (в крайнем случае по N, где N маленькое фиксированное число (<5) не
зависящее от количества выполненных этой копией запросов).

Если у тебя есть несколько хэндлеров, использующих одни и те же права
доступа к базе, то имеет смысл разделять коннект между ними, например,
объявив его глобальной переменной некоего общего модуля, который сам
хэндлером не является, но всеми хэндлерами используется. А открывать это
соединение из PerlChildInitHandler. Или сделать все хэндлеры процедурами в
одном и том же модулями, а коннект хранить в глобальной переменной этого
модуля.  
 
А несколько коннектов в одном скрипте это по-моему в любом случае бред
собачий.

-- 
Victor Wagner			vitus@xxxxxx
Programmer			Office:7-(095)-785-09-72
Communiware.Net 		Home: 7-(095)-135-46-61
http://www.communiware.net      http://www.ice.ru/~vitus

=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.