как генерировать страницу в фоне?
У меня главная страница генерируется долго - порядка 5-10 сек - если не закеширована естественно. Это из-за того что новости собираются recursive по каждой категории (всего категорий 11). А если вечерний дамп не закончился - то вешалки - генерация длится около 30 сек.
Шеф предлагает такое - так как сайт не биржевые сводки, сделать фоновую генерацию страницы в кроне каждые 15 мин. А главную страницу показывать из кеша исключительно. Соответственно вопрос - как просмотреть главную страницу из кеша даже если на главной произошли изменения? Второй вариант - как определить что страница сгенерирована и тогда можно просто лезть по url главной (index.php?id=1), а если не сгенерирована, то то брать из собственного кеша, а не кеша Typo3? Короче есть ли в Typo3 какие то функции, которые выдают Да - типа кеш устарел, Нет - кеш актуален. |
Используй wget для кэширования главной страницы в index.html с вызовом из cron 'a раз в 15 минут.
|
Цитата:
Я рассматриваю крайний вариант - например движок работает очень медленно (например когда сервер делает резервный dump). Тогда в index.html может попасть строка типа "Page is being generated". А если скрипт будет понимать что страница уже в кеше, то и спокойно (вероятность того что движок отдаст из кеша быстрее) возьмет страницу за 0.15 с - по крайней мере я делал замеры и Typo3 выдвал такое время отклика - среднее надо сказать для CMS (самый быстрый у меня вышел e100 (0.1с) - но ведь это очень простой движок). Ведь как то Typo3 сам понимает что брать надо страницу из кеша или генерировать. |
Нашел -
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. |
я эту проблему решил на PHP, беру URL функцией file
и потом проверяю, размер страницы или что там нет слов "Page is being generated" |
Часовой пояс GMT +4, время: 06:59. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot