У меня довольно дорогой серверный вызов, который мне нужно кэшировать в течение 30 секунд.Однако, похоже, что я не могу получить срок действия кэша.
В приведенном ниже коде после первого кэширования он никогда не пройдет $ return-> cache_data, даже после time () + 30секунд.
Обратите внимание, я даже могу напечатать $ cache-> expire, и он определенно установлен на время, прошедшее 30 секунд назад, и никогда не обновляется.
Я вручную очищал кэш много раз, чтобыподтвердить, что я получаю те же результаты.
Что-то не так с этим выглядит?
function mymodule_get_something($id) {
// set the unique cache id
$cid = 'id-'. $id;
// return data if there's an un-expired cache entry
// *** $cache ALWAYS gets populated with my expired data
if ($cache = cache_get($cid, 'cache_mymodule')) {
return $cache->data;
}
// set my super expensive data call here
$something = array('Double Decker Taco', 'Burrito Supreme');
// set the cache to expire in 30 seconds
cache_set($cid, $something, 'cache_mymodule', time() + 30);
// return my data
return $something;
}