lem
Новичок
Lock при обновлении кеша.
Есть скрипт, который кеширует свой вывод вот так (упрощённая конструкция):
Проблема в том, что к этому скрипту обращаются 10-20 раз в минуту, а при обновлении кеша ему приходится работать 20-30 секунд. Для того, чтобы избежать параллельного обновления кеша нужно лочить эту операцию, я делаю это созданием .lock файла.
Правильно ли это? Как делаете вы?
-~{}~ 10.02.09 13:07:
Сразу дополнительный вопрос по этой же проблеме.
Если пользователь запрашивает скрипт, кеш которого устарел, то есть два варианта:
1. Пользователю выкидывается старый кеш.
2. Пользователь ждёт, пока кеш обновится.
Я использую второй метод, но пользовател(и) может(могут) так висеть по минуте, как-то не кошерно... Пробовал с 503-й ответ с заголовком Retry-After:150 , но браузеры не делают второго запроса после 150 секунд.
Эта вторая проблема не критичная, всё-равно nginx перед апачем висит, но всё же...
Есть скрипт, который кеширует свой вывод вот так (упрощённая конструкция):
PHP:
if(filemtime(CACHE_FILE) > MAX_CACHE_TIME) {
$s = render...
echo $s;
fwrite($s, CACHE_FILE);
}
else
readfile(CACHE_FILE);
Правильно ли это? Как делаете вы?
-~{}~ 10.02.09 13:07:
Сразу дополнительный вопрос по этой же проблеме.
Если пользователь запрашивает скрипт, кеш которого устарел, то есть два варианта:
1. Пользователю выкидывается старый кеш.
2. Пользователь ждёт, пока кеш обновится.
Я использую второй метод, но пользовател(и) может(могут) так висеть по минуте, как-то не кошерно... Пробовал с 503-й ответ с заголовком Retry-After:150 , но браузеры не делают второго запроса после 150 секунд.
Эта вторая проблема не критичная, всё-равно nginx перед апачем висит, но всё же...

