Попытаюсь сформулировать проблему как можно четче.
Я добавил на сайт DbSession (как это советовалось тут), чтобы он регистрировал последнюю активность всех пользователей. Проблема в том, что при одном запросе от любого пользователя, происходит огромное кол-во записей (удаляется старая сессия, добавляется новая, и так много раз). За несколько дней разработки сайта я обнаружил, что идентификатор таблицы остановился чуть ли не на 8 миллионе.
И еще косвенная проблема.
Если пользователь зарегистрирован, DbSession сам определяет пользователя из таблицы и обновляет его последнюю активность (но огромное кол-во обращения к бд остается). Если пользователь не зарегистрирован, то огромное кол-во раз удаляется сессия и снова добавляется.
Нужно чтобы происходил один запрос в DbSession при одном запросе или чтобы можно было определять не зарегистрированных пользователей и тоже только обновлять сессию, без удаления и добавления новой. А лучше то и то:)
Как это можно реализовать?
Все гораздо проще. Чтобы незарегистрированных пользователей тоже идентифицировало, необходимо добавить использование куки в конфигах приложения.
$config = [
'components' => [
'session' => [
'class' => 'yii\web\DbSession',
'writeCallback' => function ($session) {
return [
'user_ip' => Yii::$app->request->userIP,
'user_id' => Yii::$app->user->id,
'last_write' => time(),
];
},
'useCookies' => true, // ВКЛЮЧАЕМ ИСПОЛЬЗОВАНИЕ КУКИ
'timeout' => 60 * 60 // 1 hour
],
]
]
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использовал команду php artisan make:auth для авторизации но теперь нужно все изменения удалить, не хочу переустанавливать Laravel, есть ли встроенные...
Возможно ли при нужном юзерагенте вывести Ip адрес,а в остальных случаях показывать нужное видео
Периодически замечаю, что в студии слетают брейпоинтыРаньше помогал clean - rebuild