У меня есть простой сайт в общедоступном хостинговом сервисе, и я использую базовое кэширование вывода PHP (запись HTML-файлов в файлы). Данные сайта не часто меняются, но когда это происходит, я только делаю изменения, поэтому у сайта нет интерфейса обновления, потому что он не нужен, я просто вхожу в интерфейс phpmyadmin и загружаю изменения в качестве операторов SQL ,Есть ли способ вызвать немедленное аннулирование кеша файловой системы PHP, если данные MYSQL меняются?
Это хорошо работает, единственная проблема заключается в том, что изменения не отображаются сразу на сайте, только когда истекает время кеша. Есть ли способ вызвать недействительность кэша из mysql, поэтому кеши очищаются при изменении данных в базе данных. Например, я мог бы добавить еще одну строку sql для обновления, которая могла бы вызвать внешнюю программу в домашнем каталоге, если это возможно, но так ли?
Если это не так, то есть какой-то умный способ для MYSQL уведомить сторону PHP об обновлении данных без необходимости подключения PHP к базе данных (если есть кешированная версия страницы, то она использует это и не подключается к базе данных, потому что это точка).
У вас есть доступ к cron (или другим средствам настройки повторяющихся задач) в вашем сервисе хостинга? – Furgas
Да, cron доступен, но допустимый минимальный интервал повторения составляет 30 минут, поэтому он не очень полезен для недействительности кеша. Конечно, я мог бы попытаться запустить 30 cron-заданий с разными начальными временами, чтобы достичь 1-минутной гранулярности, но это неуклюжие решения. – Tom
Вы можете реализовать свой собственный упрощенный cron (то есть php-скрипт, который будет регулярно проверять наличие обновлений для обновлений), и запускать его один раз. – penartur