Discussione:
Attesa metodi lunghi
(troppo vecchio per rispondere)
Riddler ?
2009-01-15 06:17:03 UTC
Permalink
Buon giorno a tutti,
anche se il webservice non è completo sto cominciando a fare alcuni
test con la parte client.

La versione finale sarà fatta in Silverlight, ma le prove che ho fatto
ora sono con una semplice pagina web, un bottone che richiama il
metodo e visualizza la risposta.

Alcuni metodi sono quasi immediati, quindi è come se si navigasse in
un sito "tradizionale", ma ci sono delle elaborazioni che richiedono
un pò più di tempo, alcune si aggirano sull'ordine di 20-30 secondi,
ma potrebbe verificarsi anche una attesa di minuti ... NON posso
ancora quantificare quanti perchè sono ancora in fase realizzativa
della parte che impiegherà più tempo e non ho potuto testarla, ma già
qualche secondo in più rispetto alla normale navigazione ... spiazza e
insinua il dubbio a chi sta utilizzando l'applicazione che "forse" si
sia piantato tutto ...

La momento ho fatto apparire un avviso che anticipa ci vorrà qualche
secondo per l'elaborazione ...
Se valorizzo una label ... parte direttamente l'elaborazione del WS e
NON viene visualizzato "Elaborazione in corso attendere..." così sono
ricorso al popup.

Terminata l'elaborazione appare una label TERMINATO
NON fate caso ai messaggi, mi servono per cominciare a vedere come
opera POI li sistemerò ;-)

Ho cominciato a spulciare sul web ed ho visto che è possibile far
partire il tutto in un Thread così da "liberare" il client a fare
altro, ma temo che la cosa porti all'avvio di troppe elaborazioni
lunghe ...

Come gestire poi gli avvisi ...
terminata elaborazione x
terminata elaborazione y
terminata elaborazione z

?

E' possibile dare e gestire un limite di Thread per non occupare
troppe risorse?

Grazie anticipatamente

saluti

--
Riddler ?
Corrado Cavalli [MVP]
2009-01-15 06:22:27 UTC
Permalink
Se usi Silverlight non devi fare nulla in quanto tutte le chiamate vengono
eseguite in maniera asincrona proprio per evitare che il client rimanga
"appeso" durante la chiamata. Semmai devi abituarti al fatto che il tutto
deve essere gestito in questo modo.

HTH
--
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/corrado/
Riddler ?
2009-01-15 06:48:39 UTC
Permalink
On 15 Gen, 07:22, "Corrado Cavalli [MVP]" <***@mvps.
0rg> wrote:
Ciao Corrado,
Post by Corrado Cavalli [MVP]
Se usi Silverlight non devi fare nulla in quanto tutte le chiamate vengono
eseguite in maniera asincrona proprio per evitare che il client rimanga
"appeso" durante la chiamata.
WOW!
quindi il senso del "bloccaggio" che da il test fatto da una classica
pagina web sparisce ;-)
bene meglio che parta subito con i test anche lato Silverlight ;-)

OTTIMA notizia!
Post by Corrado Cavalli [MVP]
Semmai devi abituarti al fatto che il tutto
deve essere gestito in questo modo.
mmm leggendo in rete sulla cosa ... mi viene il timore di non sapere
più cosa ha lanciato l'utente ...

Nel mio caso le operazioni sono
- estrazione dati da un DB e portarle in una determinata area locale
- elaborazione dei dati scaricati in locale ( da alcuni se ne generano
altri )
- utilizzo dei file elaborati e prodotti attraverso questi ultimi
- presentazione risultati elaborazioni precedenti

Se un utente lancia una elaborazione un un gruppo di file X, mentre
aspetta ne lancia un altra su un gruppo Y,
sono in due cartele diverse quindi NON avvengono "mischioni" ;-) ...
come faccio a tenere traccia durante l'attesa che sto elaborando su X
e su Y?

NON so se sono riuscito a rendere, provo con un esempio più pratico...

Elaborazione X
etraggo dal DB tutte le vendite del negozio XX


Elaborazione Y
etraggo dal DB tutte le vendite del negozio YY

faccio le mie elaborazioni sui file ( ci sono diversi tipi di
elaborazione, ma NON è questo che influenza le cose )

Sono pronto a visualizzare i risultati ...

Y anche se lanciata dopo, potrebbe finire prima di Xe mentre l'utente
aspetta che X termini potrebbe cominciare a guardarsi i risultati ed i
grafici prodotti da Y.

E la gestione di queste cose che NON riesco ad immaginarmi...

Grazie dell'aiuto
Post by Corrado Cavalli [MVP]
HTH
sì moltissimo!
mi hai dato un ottima notizia!

la pausa caffè è stata "più migliore" ;-)

--
Riddler ?

Loading...