Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: принудительная очистка кеша
Hello!
On Sun, May 29, 2011 at 07:02:45PM +0400, Dmitry Morozovsky wrote:
> On Sun, 29 May 2011, Dmitry Morozovsky wrote:
>
> DM> О, Дадо ;)
> DM>
> DM> On Sun, 29 May 2011, Evgenii Davidov wrote:
> DM>
> DM> ED> > > хочу включить кеширование на одном сайте
> DM> ED> > > но там при обновлении страниц бывает нужно срочно выдать новую,
> DM> ED> > > будет ли корректно стирать в этот момент (скриптом который
> создает новую страницу) кеш
> DM> ED> > > например через find /cache/ -type f -delete
> DM> ED> > > спасибо
> DM> ED> >
> DM> ED> > Лучше делать ему mv, а потом стирать.
> DM> ED>
> DM> ED> спасибо, сделал диск в памяти для этого -- стирает весьма быстро
> DM>
> DM> Всё равно надо б сначала переименовывать, чтобы исключить race, и выдачу
> DM> клиенту половины контента.
>
> Если хочется зачистить всё, то примерно так:
>
> mkdir -p /cache/.new
> apply -d 'mkdir -p /cache/.new/%1' `cd /cache && find . -type d`
> mkdir /cache/.old
> mv /cache/* /cache/.old
> mv /cache/.new/* /cache/
> rm -rf /cache/.old
>
> Между двумя mv тут всё равно малый рейс есть, но он на выдачу клиенту не
> повлияет.
"Я не спрашиваю, какую траву вы курите. Скажите только, где вы её
берёте." (c)
Вариант "find /cache/ -type f -delete" - годный, с точностью до
возможного некорректного представления nginx'а о размере кеша.
Откуда ты откопал race в unlink(2) - я не понял. При отдаче
одного ответа там никакого race'а нет, а если пытаться таким
образом исключить race при отдаче нескольких ресурсов (e.g.
страница + картинки) - то проще сразу повесится, ибо атомарности
тут быть не может всилу удалённости клиента.
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|