3.798 messaggi dal 28 gennaio 2003
Ciao.
Una pagina web (intranet) deve lanciare una procedura lunga (qualche ora) e deve restituire come risultato, un csv.
Qualche consiglio per affrontare il problema?

Pietro
10.746 messaggi dal 09 febbraio 2002
Contributi
Ciao Pietro,
potresti eseguire l'operazione in background usando Hangfire, oppure spostarla in un servizio per Windows.
Dalla pagina web potresti consentire agli utenti di monitorare il progresso (se necessario) usando SignalR, come vedi in questa applicazione dimostrativa.

https://github.com/BrightSoul/LongRunningJobDemo

Qui informazioni su Hangfire e SignalR.
http://www.aspitalia.com/script/1190/Utilizzare-Hangfire-Schedulare-Job-ASP.NET-MVC.aspx
http://www.aspitalia.com/focuson/1300/Speciale-Web-Real-Time-WebSockets-SignalR.aspx

ciao,
Moreno

Enjoy learning and just keep making
3.798 messaggi dal 28 gennaio 2003
Ti ringrazio tanto, studierò il tuo consiglio.

Potrei chiederti cosa ne pensi della creazione di un gestore HTTP asincrono? Uso visual studio 2010.

Ciao.

Pietro
10.746 messaggi dal 09 febbraio 2002
Contributi
Ciao,
anche se il gestore è asincrono, l'utente deve sedere davanti alla pagina bianca per ore, tempo che richiede l'operazione per completarsi. "Asincrono" significa semplicemente che IIS può riutilizzare il thread in maniera intellingente per eseguire altre operazioni mentre sta aspettando un risultato da periferiche di I/O.
Cioè: "ok thread, è inutile che resti ad aspettare qui che la query SQL torni un recordset, vammi a servire la richiesta di ques'altro utente mentre il db lavora, poi quanto hai fatto torni qui a elaborare il recordset".

Inoltre, il gestore asincrono non è utile perché è comunque soggetto al timeout di esecuzione di ASP.NET, che per default è di soli 110 secondi. Dopodiché l'esecuzione dell'handler verrà arrestata forzatamente.

Con un'operazione in background, invece, puoi metterci tutto il tempo necessario purché IIS non termini l'applicazione ASP.NET per inattività o per riciclo programmato.

ciao,
Moreno

Enjoy learning and just keep making
3.798 messaggi dal 28 gennaio 2003
Chiarissimo! Ti ringrazio ancora

Pietro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.