Pregunta

Así que tengo un proceso que se ejecuta en la medianoche que establece un punto de inicio y finalización de un objeto flash. Esto sólo tiene que ejecutar una vez al día, así que obviamente estoy almacenamiento en caché el conjunto de resultados.

Sin embargo, el problema que estoy corriendo en está, si los datos todavía se almacena en caché después de medianoche, no es tirando en los datos más correctos, hasta que la caché expire.

Básicamente necesito la memoria caché de expirar a las 11:59:59 PM, de manera que a las 12:00 am se pone los datos correctos.

Estoy adivinando un caché de dependencias SQL en la tabla que estoy tirando de los datos de que sería ideal, sin embargo nunca he puesto que antes.

¿Hay una manera de contar la memoria caché para eliminar un elemento específico exactamente a medianoche?

Gracias chicos!

- caducidad absoluta ---

Creo que lo tengo:

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);
¿Fue útil?

Solución

Se puede establecer un tiempo absoluteExpiration en el objeto de caché, que es un DateTime.

También puede combinar un absoluteExpiration con un SqlCacheDependency.

En cuanto a la cuestión de no tirar de los nuevos datos cuando la memoria caché expira:. Se puede cablear un CacheItemRemovedCallback para recibir la notificación de cuando expira, y refrescar la memoria caché en ese momento

Otros consejos

No entiendo por qué tiene un problema con caducidad absoluta? Puede indicar la fecha y hora exacta en la que el elemento expirará de la caché. Por lo tanto, la siguiente línea de código se inserte "myObject" en la memoria caché en la clave "MyKey" y expirará en la medianoche del día siguiente (Independientemente de cuando se enteres la caché).

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

Si nos fijamos aquí , bajo "la dependencia basada en el tiempo", que muestra cómo configurar el elemento de caducar en un momento específico. Es eso lo que está buscando?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top