Kendi sorumu cevaplamak için geri dönersek, buradaki ana sorun, her zaman aynı anda süresinin dolmasını önlemek. Bunun olmasına izin verilirse, sistem önbelleği yeniden doldururken yavaşlar ve tıkanır.
Çoğu zaman, bu gerçekten pratikte bir sorun değildir. Zamanla, tüm bileşenler süreleri dolduğunda kayma eğilimi gösterir. Birden fazla bileşen aynı anda yeniden oluşturulmuşsa, bu bir kod kokusudur, çünkü muhtemelen tek bir bileşen olarak birlikte önbelleğe alınmaları gerekir (örneğin, bir sayfanın benzersiz üstbilgisi, gövdesi ve altbilgisi ayrı olarak önbelleğe alınmışsa, belki sayfanın kendisini önbelleğe almanız yeterli).
Bir seferde birçok şeyin önbelleğe alınması gereken zamanlar vardır, örneğin bir sistemi başlattıktan sonra, tüm önbelleği temizlediysek veya önbellek anahtarlarını döndürdüysek. Bu durumda, genellikle o kadar da kötü değildir, çünkü bileşenler hızla dolar ve süreleri daha sonra ayrılacaktır.
Bu bir sorun olduğu ölçüde, birkaç çözüm var:
- Sabit bir süre yerine bir aralıkta rastgele bir önbellek son kullanma süresi seçin, örneğin 60 dakika yerine 15 ila 90 dakika arasında rastgele bir tam sayı.
- Eski yanıtlara izin ver. Bir önbellek öğesinin süresi dolduğu için, hala oradaysa öğeyi kullanamayacağınız anlamına gelmez. İşletmenin ihtiyaçlarına bağlı olarak, sürenin dolmasından sonra orijinal sürümü getirirken bir performans sorunu varsa bunu kullanmak kabul edilebilir. HTTP, bu "zorunluluk-revalidate" amacı (eğer doğruysa, bunun anlamı ise değil bitiminden sonra önbelleğe alınmış sürümünü kullanmak için).