Замена кэширования в Smarty

Крот

Новичок
Замена кэширования в Smarty

Привет.

Меня слегка не устраивает кэширование в Smarty, а именно тем, что если кэш перезаписывается и в этот момент одновременно коннектится куча юзеров, то серваку сильно плохеет (не будем вдоваться в подробности почему и т.д., просто есть задача и всё).

Я хочу реализовать это примерно следующим образом...

Итак, есть 3 ситуации...
Закэшированный файл существует (даже не будем рассматривать эту ситуацию)
Закэшированного файла не существует
В настоящее время кэш обновляется


Закэшированного файла не существует.
Первый пользователь, который зашел на скрипт инициировал создание кэша. Создаётся временный файл, который указывает другим пользователям на то, что в настоящее время генерируется кэш. Как только кэш сгенерирован временный файл удаляется и создаётся файл кэша. В то время, пока происходит генерация - другие пользователи как бы ждут (как лучше организовать??).

В настоящее время кэш обновляется. Пользователь, который инициировал обновление кэша создаёт временный файл, который указывает другим пользователям на то, что в настоящее время кэш обновляется, берите старую версию кэша. Когда кэш обновился - удаляется временный файл и старый файл перезаписывается.

Насколько это рабочий алгоритм?

Спасибо.
 

kvf77

Red Devil
А кто будет отслеживать ситуацию создания сигнального файла? :) Да и серверу будет еще хуже ибо проверки файлов и все такое увеличиваются в разы.
 

korchasa

LIMB infected
Крот
Зачем еще один файл? Есть же flock().

>В то время, пока происходит генерация - другие пользователи как бы ждут (как лучше >организовать??).
цикл на n попыток, с паузой между ними
 

Крот

Новичок
Автор оригинала: korchasa
Крот
Зачем еще один файл? Есть же flock().

>В то время, пока происходит генерация - другие пользователи как бы ждут (как лучше >организовать??).
цикл на n попыток, с паузой между ними
Да, так и буду делать. Нужно будет еще над логикой поработать.
Создавать файл реально не стоит, т.к. ось кэширует дерево файлов\каталогов и банально так делать не получится.

Спасибо большое, вдохнули уверенность, так сказать!
 
Сверху