2012-08-15 5 views
5

Se si aggiungono voci di coda di Windows Azure o riferimenti di memorizzazione BLOB da un'applicazione MVC mediante .NET SDK, per quanto tempo dovrebbe rimanere in attesa ciascun componente?Durata componente .NET di Azure (CloudQueueClient, CloudQueue, ecc.)

Per le code abbiamo CloudStorageAccount, CloudQueueClient e CloudQueue.

Per l'archiviazione blob, abbiamo CloudStorageAccount, CloudBlobClient e CloudBlobContainer.

Suppongo che sarebbe meglio creare ciascun componente una sola volta per richiesta web, ma in realtà non è così costoso quanto sia costoso creare ogni articolo. Anche in questo caso, suppongo che mantenere i client in giro tra le richieste Web utilizzando una durata singleton, ad esempio, non sarebbe un buon piano ma non avere nulla da fare.

risposta

6

Questi oggetti .NET sono leggeri. Nessuno di loro assegnerà risorse o eseguirà operazioni di rete solo per essere stato creato. Generalmente non vale la pena di memorizzarli nella cache o raggrupparli a meno che non ne creiate molti.

Non ci prendiamo nemmeno la briga di memorizzarli in cache in base alle richieste: li creiamo solo se necessario e li buttiamo via. Memorizzarli nella cache potrebbe farti risparmiare pressione sul netturbino, ma dubito che sarebbe molto.

+0

Come sai che questi sono leggeri ... È documentato ovunque? – John

+0

Potrebbe essere, ma se così fosse non potrei dirti da dove sono in cima alla mia testa. Anche questa è stata una versione completa prima, quindi potrebbe non essere più vera. Suggerirei di dare un'occhiata alla fonte, dato che ora sono open source. –

+0

In [asp.net core terms] (https://docs.asp.net/en/latest/fundamentals/dependency-injection.html#service-lifetimes-and-registration-options), useresti AddTransient CloudStorageAccount? (Invece del singleton o dell'ambito) – Ciantic