Passaggio al modello di programmazione asincrona

2

il nostro team sta mantenendo e sviluppando un servizio Web .NET scritto in C #. Abbiamo testato lo stress della farm del servizio Web e abbiamo la prova che l'architettura effettiva non è in grado di scalare correttamente, poiché il numero di richieste è in costante aumento.

Abbiamo analizzato le conclusioni di Martin Fowler in questo articolo, e il nostro team ritiene che la migrazione a un modello di programmazione asincrono come la quello descritto potrebbe essere la giusta direzione da indicare anche per il nostro servizio. La mia domanda è: pensi che questo "switch" abbia bisogno di una completa riscrittura dell'applicazione? Qualcuno di voi è stato in grado di adottare l'APM senza riscrivere tutto e ha qualche intuizione da condividere?

Grazie in anticipo

    
posta Simone 27.11.2012 - 10:02
fonte

2 risposte

3

Utilizza le parole chiave async e await in C # 5.0. Queste parole chiave consentono di inserire la funzionalità asincrona nelle chiamate al metodo che lo richiedono, senza dover creare meccanismi di callback. I callback vengono creati automaticamente dal compilatore, sotto le copertine. Ciò dovrebbe semplificare notevolmente lo sforzo di refactoring.

Anders Hejlsberg descrive la funzionalità async in questo video , con un'applicazione di esempio dettagliata e dimostrazione .

    
risposta data 27.11.2012 - 19:06
fonte
1

Bits that are blocking are calls to external services whose response is needed in order, for our service, to provide a meaningful response.

Sono disponibili ulteriori elaborazioni in attesa della risposta da queste chiamate di servizio esterne? Altrimenti, se sei sfortunato, async ti acquisterà solo le tue prestazioni se sarai in grado di fare di più in parallelo.

D'altra parte se questi servizi esterni sono l'unica cosa che deve essere eseguita in parallelo, vorrei esaminare futures , sembrano essere adatti per avviare una chiamata di servizio, quindi fare qualcos'altro in attesa del risultato e il fatto che sarebbero minimamente invasivi per il tuo progetto attuale.

    
risposta data 27.11.2012 - 19:21
fonte

Leggi altre domande sui tag