49 lines
4.3 KiB
Markdown
49 lines
4.3 KiB
Markdown
## Просмотры публикаций
|
||
|
||
- Интеграция с Google Analytics для отслеживания просмотров публикаций
|
||
- Подсчет уникальных пользователей и общего количества просмотров
|
||
- Автоматическое обновление статистики при запросе данных публикации
|
||
|
||
## Мультидоменная авторизация
|
||
|
||
- Поддержка авторизации для разных доменов
|
||
- Автоматическое определение сервера авторизации
|
||
- Корректная обработка CORS для всех поддерживаемых доменов
|
||
|
||
## Система кеширования
|
||
|
||
- **Redis как основное хранилище**: Кэширование, сессии, токены, временные данные
|
||
- **Полная документация схемы**: [redis-schema.md](redis-schema.md) - детальное описание всех структур данных
|
||
- **11 категорий данных**: Аутентификация, кэш сущностей, поиск, просмотры, уведомления
|
||
- **Система токенов**: Сессии, OAuth токены, токены подтверждения с TTL
|
||
- **Переменные окружения**: Централизованное хранение конфигурации в Redis
|
||
- **Кэш сущностей**: Авторы, темы, публикации с автоматической инвалидацией
|
||
- **Поисковый кэш**: Нормализованные запросы с результатами
|
||
- **Pub/Sub каналы**: Real-time уведомления и коммуникация
|
||
- **Оптимизация**: Pipeline операции, стратегии кэширования
|
||
- **Мониторинг**: Команды диагностики и решение проблем производительности
|
||
- Поддержка как синхронных, так и асинхронных функций в декораторе cache_on_arguments
|
||
- Автоматическая сериализация/десериализация данных в JSON с использованием CustomJSONEncoder
|
||
- Резервная сериализация через pickle для сложных объектов
|
||
- Генерация уникальных ключей кеша на основе сигнатуры функции и переданных аргументов
|
||
- Настраиваемое время жизни кеша (TTL)
|
||
- Возможность ручной инвалидации кеша для конкретных функций и аргументов
|
||
|
||
## CORS Configuration
|
||
|
||
- Поддерживаемые методы: GET, POST, OPTIONS
|
||
- Настроена поддержка credentials
|
||
- Разрешенные заголовки: Authorization, Content-Type, X-Requested-With, DNT, Cache-Control
|
||
- Настроено кэширование preflight-ответов на 20 дней (1728000 секунд)
|
||
|
||
## Пагинация комментариев по веткам
|
||
|
||
- Эффективная загрузка комментариев с учетом их иерархической структуры
|
||
- Отдельный запрос `load_comments_branch` для оптимизированной загрузки ветки комментариев
|
||
- Возможность загрузки корневых комментариев статьи с первыми ответами на них
|
||
- Гибкая пагинация как для корневых, так и для дочерних комментариев
|
||
- Использование поля `stat.comments_count` для отображения количества ответов на комментарий
|
||
- Добавление специального поля `first_replies` для хранения первых ответов на комментарий
|
||
- Поддержка различных методов сортировки (новые, старые, популярные)
|
||
- Оптимизированные SQL запросы для минимизации нагрузки на базу данных
|