मेरे पास एक काफी महंगा सर्वर कॉल है जिसे मुझे 30 सेकंड के लिए कैश करने की आवश्यकता है। ऐसा लगता है कि मुझे कैश की समयसीमा समाप्त नहीं हो सकती है।Drupal 7 अस्थायी कैश आइटम की अवधि समाप्त नहीं होगी
नीचे दिए गए कोड में, पहली बार कैश होने के बाद, यह समय() + 30 सेकंड के बाद भी वापस $ वापसी-> cache_data नहीं मिलेगा।
नोट, मैं $ कैश-> समय सीमा भी प्रिंट कर सकता हूं और यह निश्चित रूप से 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;
}
के लिए धन्यवाद सैनिटी चेक। – Coder1
अच्छा दृष्टिकोण। +1 ... संपादित करें: बस ध्यान दिया कि यह क्लाइव था। बेशक यह एक अच्छा दृष्टिकोण था। –
हैलो क्लाइव, "अगली सामान्य कैश मिटाएं" वह क्या है? ड्रश सीसी सभी CACHE_TEMPORARY और CACHE_PERMANENT दोनों को हटा देता है। जब सामान्य कैश स्वाइप होता है, तो कोई विचार? –