кэширование запроса, который редко изменяется в Coldfusion/cfWheels

Я смотрю на функцию кеша в функции findAll cfWheels. Я немного опасаюсь его использования. Мои запросы не занимают так много времени, как они мне абсолютно необходимы, но небольшое увеличение скорости всегда приветствуется. Я получаю 10 мс из запрошенного кеша, который в противном случае занимает около 100 мс. Мне интересно, когда запись изменяется, я бы хотел, чтобы кеш очищался при следующем запуске. Не похоже, что в структуре есть какой-либо механизм или флаг, который позволил бы это сделать, поэтому мне пришлось бы самому устанавливать и сбрасывать флаги, что, скорее всего, в любом случае привело бы к чтению из базы данных. Я надеялся, что смогу установить кеш на целый день и обновлять при необходимости, это ужасно ошибочно? Скорее всего, я не собираюсь разрабатывать какую-либо функциональность, позволяющую кэшировать это приложение, но мне любопытно, стоит ли возвращаться к нему.


person Daniel    schedule 18.04.2013    source источник
comment
Стоит ли повторно посещать его, зависит от того, как часто выполняется запрос и как часто обновляются данные. Вы знаете это больше, чем мы.   -  person Dan Bracuk    schedule 18.04.2013


Ответы (2)


Точнее, всякий раз, когда вы делаете новую запись в базе данных, используйте тег cfhttp для перезагрузки приложения.

person Guest    schedule 18.04.2013
comment
Это предполагает, что запись в базу данных выполняется через приложение cf, что не всегда так. - person Dan Bracuk; 18.04.2013

Кэширование можно очистить, перезагрузив приложение. Это будет не ответ, который вы ищете, а решение, вот еще один подход. Вы можете перезагрузить приложение через <CFHTTP>, отправив URL-адрес через <CFHTTP> после добавления новой записи в базу данных. Если вы добавляете запись через сайт управления, вы можете перезагрузить общедоступный сайт, используя <cfhttp>. :)

person Sagar Bhinge    schedule 18.04.2013
comment
Я думал, что кэширование относится к серверу, а не к приложению. - person Dan Bracuk; 18.04.2013
comment
@DanBracuk CfWheels, а также множество других фреймворков (на самом деле) позволяют кэшировать на нескольких уровнях (контент, функция, запрос). В случае ColdFusion кэширование может быть облегчено сервером, но иногда даже использование резервной копии плоского файла (xml/txt) может быть быстрее, чем подключение к базе данных, особенно если есть много объединений и записей. ) - person Daniel; 18.04.2013
comment
Я обнаружил, что перезагрузка приложения может добавить дополнительное время, если изменения вносятся слишком часто, это может ухудшить ситуацию. - person Daniel; 18.04.2013