Sto lavorando su una nuova funzione per un sito Web ASP.NET MVC. Il tempo di esecuzione è piuttosto lungo al momento, quindi sto considerando le opzioni.
La funzione prende un foglio di calcolo Excel, lo carica sul server web. Quindi è necessario selezionare tutte le righe e utilizzando Entity Framework inserire le righe in un database. Ogni riga corrisponde al modello di entità richiesto. Attualmente a solo 50000 righe, questo processo richiede un po 'di tempo e suppongo che il numero di righe crescerà in futuro.
Ho alcune opzioni per l'elaborazione qui e mi chiedo se c'è un modo migliore per gestirlo. Le due idee che ho ora sono
1) Consegnare il lavoro a un servizio che, a completamento, invia un messaggio all'utente. L'ovvio vantaggio è che l'utente non ha bisogno di tenere aperta la finestra del browser. 2) Aggiungi una barra di avanzamento e il servizio passa gli aggiornamenti a jquery / javacript per eseguire aggiornamenti visivi.
Cercherò di ridurre il tempo, eventualmente spostando le query dal fare affidamento su Entity Framework. A volte le stored procedure sono molto più veloci di Linq To Entities, ma a parte questo, il processo potrebbe richiedere ancora più di qualche secondo, il che non mi piace per l'utente.
Qualcuno può pensare ad altri / modi migliori per gestire i lunghi processi in esecuzione su un'applicazione web? Esistono scuole di pensiero sulle migliori pratiche sulla gestione di queste situazioni?