26 messaggi dal 16 febbraio 2001
Buongiorno a tutti,
scusate se torno su questo argomento già discusso in altri thread ma vorrei chiarirmi meglio le idee.
In un'applicazione asp.net vb ho necessità di interrogare un servizio web e che richiede un po' di tempo prima che risponda. Effettuando la richiesta singolarmente il tempo, anche se lento, diciamo che è accettabile.
Ora lo stesso servizio lo devo richiamare più volte tramite un loop e i tempi di risposta in modalità sincrona diventano veramente altissimi (si parla di ore).
Ho pensato di effettuare le chiamate in modalità parallela.
Quali sono le precauzioni che devo prendere per effettuare questo tipo di chiamate per non sovraccaricare sia il server che il web service?
Grazie
497 messaggi dal 08 febbraio 2009
Ciao

Lato "chiamante" (quindi il tuo loop), il fatto di mettere tutto in parallelo incide poco sulle risorse: l'ambiente che chiama non fa operazioni pesanti, sfrutta la rete ed eventualmente la RAM. Però, a meno che il tuo web-service non risponda con centinaia di MB, direi che sono alquanto trascurabili come problemi.


La cosa si fa più interessante lato "chiamato" (web-service). E' lui infatti a dover fare la parte pesante del lavoro: intercettare la chiamata, accedere ad un DB/FileSystem, ..., rispondere al chiamante.

Qui però dipende molto dalle operazioni fatte dal servizio e dalle prestazioni della macchina su cui gira. Per esempio, se fa una query pesantissima lato DB, eseguirne 10 o 100 in parallelo potrebbe inchiodare il tutto. Purtroppo è difficile prevedere prima il comportamento, a meno che tu non abbia altre informazioni da condividere
26 messaggi dal 16 febbraio 2001
Grazie per la risposta. Ora ho le idee più chiare.
Il WS risponde con pochi kb (si tratta di dati anagrafici di clienti se presenti) e la chiamata è veramente limitata ad una query secca su db. Purtroppo sono i tempi di latenza delle risposte che incidono. Ora ci provo e vediamo che accade.
Ad ogni modo grazie ancora.
710 messaggi dal 13 novembre 2008
Contributi
Ciao,
La domanda è perché interrogare continuamente un'anagrafica? I dati cambiano così di continuo? Nel caso conviene comunque prevedere un servizio di cache dei dati, in modo da essere tranquilli se i dati lievitano e limitare le richieste al server o perlomeno i dati in transito finché questi non cambiano.
Puoi eseguire poi dei task asincroni in modo da non bloccare l'app in attesa della risposta, e anche, invece di un pool continuo di richiesta dati notificare il client dal server quando questi cambiano (es. SignalR) , molto più funzionale

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.