On Thursday 17 September 2009 10:45:12 Dmitry E. Oboukhov wrote:
> >> ну да, собственно задача стоит не память экономить, а запросы к БД.
> >> ну и если за время жизни модперлового скрипта будет сделан один
> >> запрос, да бог бы с ними что их сделается столько сколько тех форков
>
> AS> А тогда не обойтись и без запросов к "единому знанию" о том, не
> AS> появились ли обновления, и делать это при каждом запросе пользователя.
> это-то само собой. от этого не уйти ни в случае мемкеша ни в любом
> другом случае

Могу предложить такое решение.
в startup.pl:

open my $fh, '+>', undef or die "open tempfile failed: $!";
print $fh 1; # store freshness flag
seek $fh,0,0;
mmap($::state, 1, PROT_READ|PROT_WRITE, MAP_SHARED, $fh)
    or die "mmap failed: $!";

Далее в чайлдах используем $::state
$::state = 0; # инвалидация кеша
if($::state) {
 # cache is fresh
} else {
 # cache is old
}

-- 
Vladimir Perepelitsa aka Mons Anderson
<[email protected]> / #99779956
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить