Domanda

Così ho un processo che viene eseguito a mezzanotte che definisce un punto di inizio e di fine per un oggetto Flash. Questo ha solo bisogno di eseguire una volta al giorno, quindi sto ovviamente cache il set di risultati.

Tuttavia, il problema che sto funzionando in è, se i dati sono ancora memorizzate nella cache dopo Midnite, non è tirando in più dati corretti, fino alla scadenza della cache.

Io fondamentalmente bisogno la cache per scadere alla 23:59:59, in modo che al 12:00 am ottiene i dati corretti.

Sto cercando di indovinare una cache dipendenza SQL sul tavolo sto tirando i dati da sarebbe l'ideale, ma non ho mai impostato che prima.

C'è un modo per dire la cache per rimuovere un elemento specifico esattamente midnite?

Grazie ragazzi!

- scadenza assoluta ---

Credo di aver capito:

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);
È stato utile?

Soluzione

È possibile impostare un tempo absoluteExpiration sull'oggetto Cache, che è un DateTime.

È anche possibile combinare un absoluteExpiration con uno SqlCacheDependency.

Per quanto riguarda la questione della non tirare i nuovi dati quando la cache scade:. È possibile cablare un CacheItemRemovedCallback a ricevere la notifica di quando scade, e aggiornare la cache a quel tempo

Altri suggerimenti

Non capisco il motivo per cui hai un problema con scadenza assoluta? È possibile indicare il datetime esatto in cui l'elemento scadrà dalla cache. Pertanto, la seguente riga di codice inserirà "myObject" nella cache sotto la chiave "MyKey" e scadrà alla mezzanotte del giorno successivo (Indipendentemente da quando si enteres la cache).

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

Se si guarda qui , sotto "Dipendenza Time-based", che mostra come impostare la voce per scadere in un momento specifico. E 'questo che stai cercando?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top