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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Alexey Gavluk                        2:5020/400     16 Apr 2003  16:36:02
 To : All
 Subject : mod_perl2. lost hash data between requests
 -------------------------------------------------------------------------------- 
 
 Привет Алл!
 
 mod_perl2.
 У меня есть данные, хранящиеся между запросами в некотором "менеджере" вот
 таким вот финтом.
 
 ===Manager.pm===
 package Manager;
 $Manager::Obj = Manager->new();
 
 sub new {
     my $class = shift;
     my $self = {};
     $self->{storage} = {};
     $self->{creation_time} = time;
     bless($self, $class);
     return $self;
 }
 ....
 ===============
 
 ====httpd.conf=====
 PerlRequire Manager.pm
 ================
 
 В своем неком хендлере я посредством
 $Manager::Obj->some_method();
 манипулирую внутренним хешмапом.
 
 Так вот, если я в броузере делаю рефреш очень часто, то эти данные внутри
 хеша слетают. Если нажимать рефреш раз в секунду -- то все четко остается на
 месте (Data::Dumper) печатает одни и те же данные от запроса к запросу. Hо
 стоит подержать неменого Cntrl+R в броузере... данные исчезают.
 
 Думал что теряется сам объект-менеджер.... Ан нет, при выводе его адреса он
 прежний.... Я даже в конструкторе поставил ему время создания в одну из
 переменных (creation_time)... Оно тоже не меняется. А вот, блин, содержимое
 
 $self->{storage}->{*} слетает.... :-(((
 
 Следует отметить что этот сторедж опрашивается по нескольу раз при каждом
 запросе, т.е. часто.
 
 Похоже на какую-то коллизию по обращению, но которая не валит приложение, а
 стирает {storage}.
 
 Что это может быть.... Если я прав касательно коллизий, то в Java я объявил
 бы методы работы со {storage} как "synchronized" и тогда никаких конкуренций
 бы не было.... А что в Перле можно сделать, и вообще, верно ли я грешу на
 коллизии???
 
 Спасибо.
 --- ifmail v.2.15dev4
  * Origin: Svit Online (post does not reflect views of Golden Tele (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 mod_perl2. lost hash data between requests   Alexey Gavluk   16 Apr 2003 16:36:02 
Архивное /ru.cgi.perl/16795d17da570.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional