Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cache
On Tuesday 14 November 2006 00:03, Igor Sysoev wrote:
> On Mon, 13 Nov 2006, Andrei Nigmatulin wrote:
> > Вся загвоздка в том, как правильно организовать $cached_file_is_too_old.
> > Я пробовал вот так:
> >
> > perl_set $cached_file_is_too_old '
> > sub {
> > my $r = shift;
> > if (time() - (stat $r->filename)[9] > 10) {
> > return "1";
> > }
> > return "";
> > }
> > ';
> >
> > Но в момент запроса в error_log выдается следующее:
> >
> > 2006/11/12 22:43:25 [error] 23481#0: *1 call_sv("
> > sub {
> > my $r = shift;
> > if (time() - (stat $r->filename)[9] > 10) {
> > return "1";
> > }
> > return "";
> > }
> > ") failed: "Can't call method "filename" on an undefined value at
> > (eval 1) line 3.", client: 127.0.0.1, server: inspirer.lan, URL:
> > "/5.html", host: "localhost:8080"
> >
> > Как можно правильно проверить устаревание файла в моем случае ?
>
> У меня не воспроизводиться. Что показывает
Скорее всего у Вас не воспроизводилось, потому что срабатывала первая проверка
(!-f $request_filename) и не вызывался скрипт, который должен был сгенерить
этот файл. Поэтому до проверки if ($cached_file_is_too_old) дело не доходило.
Воспроизводится ли у Вас сообщение об ошибке вот с таким конфигом ?
perl_set $cached_file_is_too_old '
sub {
my $r = shift;
if (time() - (stat $r->filename)[9] > 10) {
return "1";
}
return "";
}
';
server {
listen 8000;
server_name localhost;
location / {
root html;
if ($cached_file_is_too_old) {
root html2;
}
}
}
--
Andrei Nigmatulin
GPG PUB KEY 6449830D
Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take
|