tigroid3
@tigroid3
PHP, YII2, SQL, Postgres, Docker, SPHINX, GIT

Как кешировать запрос по таймеру?

У меня есть затратный запрос new Query() который считает counts большого количества данных, которые очень быстро меняются, следовательно при вызове запроса он каждый раз долго считает, хотелось бы чтобы он запоминал его на момент срабатывания и был в кеше 3 минуты потом опять срабатывал. Как такое реализовать может примеры подкинет кто?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
tigroid3
@tigroid3 Автор вопроса
PHP, YII2, SQL, Postgres, Docker, SPHINX, GIT
$query = Model::find()->where(['field' => 5, 'field2' => 777]);

$other = Yii::$app->db->cache(function ($db) use ($query) {
    /** @var Connection $db */
    return $db->createCommand($query->createCommand()->rawSql)->queryOne();
}, 120);

в конце время в секундах, на сколько кешировать запрос
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы