Question

J'ai donc un processus qui se déroule à minuit qui fixe un point de départ et la fin d'un objet flash. Cela n'a besoin que de courir une fois par jour, donc je cache évidemment le jeu de résultats.

Cependant, le problème que je suis en cours d'exécution en est, si les données sont toujours mises en cache après Midnite, il ne tire dans les données les plus correctes, jusqu'à ce que le cache expire.

J'ai besoin essentiellement le cache expirer à 11:59:59 PM, de sorte que, à 12h00, il obtient les données correctes.

Je devine une dépendance cache SQL sur la table je tirais les données de l'idéal serait, mais je ne l'ai jamais mis que avant.

Y at-il un moyen de dire le cache pour supprimer un élément spécifique à Midnite exactement?

Merci les gars!

- Expiration absolue ---

Je pense que je l'ai:

DateTime expireWeights = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59, 999);
Cache.Insert("CacheItemName", itemToCache, null, expireWeights, System.Web.Caching.Cache.NoSlidingExpiration);
Était-ce utile?

La solution

Vous pouvez définir un temps de absoluteExpiration sur l'objet du cache, qui est un DateTime.

Vous pouvez également combiner un absoluteExpiration avec un SqlCacheDependency.

En ce qui concerne la question de celui-ci ne tire pas les nouvelles données lorsque le cache expire. Vous pouvez câbler un CacheItemRemovedCallback recevoir une notification de son expiration, et rafraîchir le cache à ce moment-là

Autres conseils

Je ne comprends pas pourquoi vous avez un problème avec l'expiration absolue? Vous pouvez indiquer l'datetime exacte dans laquelle l'élément expirera à partir du cache. Par conséquent, la ligne de code suivante insérera « myObject » dans le cache sous la clé « MyKey » et expirera à minuit le jour suivant (Indépendamment du moment où il enteres le cache).

Cache.Insert("MyKey", myObject, null, DateTime.Today.AddDays(1), TimeSpan.Zero);

Si vous regardez sous « dépendance basée sur le temps », il montre comment définir l'élément expirer à un moment précis. Est-ce que vous cherchez?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top