Задать вопрос
tigroid3
@tigroid3
PHP, YII2, SQL, Postgres, Docker, SPHINX, GIT

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

У меня есть затратный запрос new Query() который считает counts большого количества данных, которые очень быстро меняются, следовательно при вызове запроса он каждый раз долго считает, хотелось бы чтобы он запоминал его на момент срабатывания и был в кеше 3 минуты потом опять срабатывал. Как такое реализовать может примеры подкинет кто?
  • Вопрос задан
  • 174 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Решения вопроса 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);

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

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

Похожие вопросы