Я разрабатываю приложение ColdBox с модулями и хотел использовать его функции кеширования для кэширования представления в течение некоторого времени.Почему параметр cacheTimeout для renderView() в приложении ColdBox не действует?
component{
property name="moduleConfig" inject="coldbox:moduleConfig:mymodule";
...
function widget(event, rc, prc){
var viewData = this.getData();
return renderView(
view = "main/widget",
args = viewData,
cache = true,
cacheSuffix = ":" & moduleConfig.entryPoint,
cacheTimeout = 2
);
}
}
Я попытался установить конфиг кэширования по умолчанию, добавив следующую информацию в мой Cachebox.cfc и удалил cacheTimeout
из приведенной выше коды:
cacheBox = {
defaultCache = {
objectDefaultTimeout = 1, //two hours default
objectDefaultLastAccessTimeout = 1, //30 minutes idle time
useLastAccessTimeouts = false,
reapFrequency = 5,
freeMemoryPercentageThreshold = 0,
evictionPolicy = "LRU",
evictCount = 1,
maxObjects = 300,
objectStore = "ConcurrentStore", //guaranteed objects
coldboxEnabled = false
},
caches = {
// Named cache for all coldbox event and view template caching
template = {
provider = "coldbox.system.cache.providers.CacheBoxColdBoxProvider",
properties = {
objectDefaultTimeout = 1,
objectDefaultLastAccessTimeout = 1,
useLastAccessTimeouts = false,
reapFrequency = 5,
freeMemoryPercentageThreshold = 0,
evictionPolicy = "LRU",
evictCount = 2,
maxObjects = 300,
objectStore = "ConcurrentSoftReferenceStore" //memory sensitive
}
}
}
};
Хотя это не имеет какого-либо влияние на кеширование. Я также попытался добавить конфигурацию выше к моему Coldbox.cfc.
Даже если создать совершенно новую тестовую программу с помощью CommandBox через coldbox create app MyApp
, то только установить кэширование в Cachebox.cfc на одну минуту, установите viewCaching = true
в Coldbox.cfc и установите event.setView(view="main/index", cache=true)
в Main.cfc, это Безразлично работайте так, как ожидалось.
Независимо от того, что я делаю, представление всегда кэшируется в течение как минимум 5 минут.
Есть ли что-то, что мне не хватает?
Как вы подтверждаете время, в течение которого кэшируется представление? –
Поскольку этот вопрос перекрестно размещен в команде CFML slack, я ответил вам (я не могу воспроизвести). Как только мы выясним, в чем проблема, мы можем вернуться и обновить ответ здесь, так как SO действительно подходит для повторного и четвертого вопросов Q & A. –