НАЧАЛО >> Страницы сайта >> Статистика посещений страниц📄 Скачать в DOCX
При показе страницы Pages сохраняет время посещения, логин пользователя, IP-адрес, идентификатор и заголовок страницы. Учитываются обычные страницы и страницы модулей. Отказ в праве просмотра и неизвестная страница не учитываются.
Открытие страницы добавляет одну JSON-запись в DataPath/PagesStat/active.jsonl, без обращения к SID-БД статистики. Если короткая блокировка журнала занята, посещение записывается в отдельный сегмент; веб-запрос не ожидает освобождения блокировки. Каталог DataPath должен быть доступен для записи процессам сайта и очереди и закрыт от прямого HTTP-доступа.
Pages/QueueMonitor автоматически ставит Pages/ImportStatistics в штатную очередь, с интервалом не менее 60 секунд после завершения предыдущей задачи. Дополнительные пользовательские настройки не нужны. Очередь должна работать; при её остановке страницы продолжают открываться, а журнал накапливается до возобновления обработки. Фактическая задержка обновления статистики зависит от загрузки очереди.
При обновлении существующей установки список мониторов очереди может оставаться в кэше до суток. Для немедленного подключения нового монитора применяется штатная очистка кэша системы; после этого в очереди должны появиться действия Pages/QueueMonitor и Pages/ImportStatistics.
Обработчик быстро отделяет активный журнал и затем работает с завершёнными сегментами. Обращение к SQLite происходит после освобождения блокировки записи журнала. Одновременно работает один обработчик. За запуск обрабатывается до 10000 посещений или 100 файлов; проверяемый между записями бюджет работы — 20 секунд. Ожидание блокировки SQLite ограничено одной секундой; отдельная дисковая операция может дополнительно задержать фоновую задачу. Остаток сохраняется для следующего запуска.
Посещения поступают в прежнюю SID-БД PagesStat записи модуля Pages, в прежние столбцы таблицы data. История и индекс времени сохраняются. Автоматическое удаление исторических посещений или VACUUM при показе страницы не выполняются. Рост исторической БД больше не увеличивает стоимость синхронной записи статистики в веб-запросе.
pages_stat_import. После прерывания до commit транзакция повторяется; после commit уже сохранённые строки повторно не вставляются.pages_stat_rejected вместе с именем сегмента, позицией и причиной. Остальные посещения импортируются. Число таких строк доступно в результате задачи (rejected) и в Logs/PagesStat.log.imported, rejected, files, busy и limited.PagesStat: попадает в серверный журнал PHP; содержимое страницы продолжает выводиться. Такое посещение может не попасть в статистику. Следует проверить свободное место и права доступа к DataPath..tmp, затем публикуется переименованием в .jsonl. Если процесс завершился до публикации, .tmp остаётся для диагностики и автоматически не удаляется. После подтверждения остановки писателя администратор может проверить файл и переименовать его в одноимённый .jsonl, чтобы штатный импорт обработал сохранённые строки. Оборванные строки попадут в pages_stat_rejected. Удалять непроверенные файлы журнала нельзя.Гарантии повторного запуска относятся к принудительной остановке процесса и ошибкам обработки. Сохранность при отказе диска или питании зависит также от файловой системы и настроек SQLite; отдельной синхронной записи на физический носитель для каждого веб-запроса нет.