PDA

Просмотр полной версии : как генерировать страницу в фоне?


Дылгеров Ц.В.
31.05.2006, 07:53
У меня главная страница генерируется долго - порядка 5-10 сек - если не закеширована естественно. Это из-за того что новости собираются recursive по каждой категории (всего категорий 11). А если вечерний дамп не закончился - то вешалки - генерация длится около 30 сек.

Шеф предлагает такое - так как сайт не биржевые сводки, сделать фоновую генерацию страницы в кроне каждые 15 мин. А главную страницу показывать из кеша исключительно.

Соответственно вопрос - как просмотреть главную страницу из кеша даже если на главной произошли изменения?

Второй вариант - как определить что страница сгенерирована и тогда можно просто лезть по url главной (index.php?id=1), а если не сгенерирована, то то брать из собственного кеша, а не кеша Typo3?

Короче есть ли в Typo3 какие то функции, которые выдают Да - типа кеш устарел, Нет - кеш актуален.

Comrade
31.05.2006, 08:51
Используй wget для кэширования главной страницы в index.html с вызовом из cron 'a раз в 15 минут.

Дылгеров Ц.В.
31.05.2006, 10:29
Используй wget для кэширования главной страницы в index.html с вызовом из cron 'a раз в 15 минут.

понятно что wget или lynx

Я рассматриваю крайний вариант - например движок работает очень медленно (например когда сервер делает резервный dump). Тогда в index.html может попасть строка типа "Page is being generated". А если скрипт будет понимать что страница уже в кеше, то и спокойно (вероятность того что движок отдаст из кеша быстрее) возьмет страницу за 0.15 с - по крайней мере я делал замеры и Typo3 выдвал такое время отклика - среднее надо сказать для CMS (самый быстрый у меня вышел e100 (0.1с) - но ведь это очень простой движок).

Ведь как то Typo3 сам понимает что брать надо страницу из кеша или генерировать.

Дылгеров Ц.В.
31.05.2006, 10:48
Нашел -
tslib_fe::isGeneratePage ()


Returns true if the page should be generated That is if jumpurl is not set and the cacheContentFlag is not set.

Returns:
boolean

Definition at line 2156 of file class.tslib_fe.php.

Valery Romanchev
31.05.2006, 14:10
я эту проблему решил на PHP, беру URL функцией file
и потом проверяю,
размер страницы или что там нет слов "Page is being generated"