Sito Web di Azure che comunica con servizi di terze parti

1

Ho un sito Web che esegue la scansione dei dati da molti servizi di terze parti quando l'utente accede alla pagina Web. Questo può essere molto lento perché colpisco server di terze parti ed elaboro i dati restituiti prima di mostrarli all'utente. Sto ospitando il sito Web su Azure (modalità condivisa). Sto pensando di migliorare la mia implementazione. Ecco cosa sto pensando ...

Eseguire un servizio che esegue la scansione dei dati da servizi di terze parti, elaborarli e quindi memorizzarli nel database. quando l'utente naviga sul mio sito, il mio sito estrae i dati dal database e li visualizza all'utente.

Ma la soluzione sopra non mi è chiara. Devo avere un servizio normale o un servizio wcf? Se il servizio wcf dovrebbe quindi parlare con il sito web al servizio di database o wcf (che può accedere ai dati dal database)? Se il servizio è normale, come posso effettuare il deploy su Azure?

    
posta Andy Frank 30.11.2012 - 09:23
fonte

2 risposte

2

La tua idea è un passo nella giusta direzione. A meno che i dati non debbano essere presentati in tempo reale, è necessario eseguire sempre la scansione tramite un servizio in background e visualizzare i dati più recenti dal database (o, meglio ancora, una cache). Tuttavia, il modo in cui applichi questo servizio dipende interamente da te.

Alcuni consigli:

  • Utilizza un processo in background o un servizio di Windows. WCF è pensato per l'integrazione, non per l'elaborazione in background ..
  • È possibile pianificare un ruolo di lavoro dedicato per questo processo o progettare un modo per garantire che solo una istanza di ruolo Web esegua il servizio in un dato momento. Non vuoi che più istanze aggiornino contemporaneamente gli stessi dati, per non parlare delle risorse sprecate per la scansione dei dati da più istanze contemporaneamente.

Se si decide di affidarsi a un ruolo di lavoro dedicato (è possibile utilizzare una singola istanza extra piccola, molto probabilmente, che costa solo $ 0,02 / ora), esaminare l'override di OnRun nella classe RoleEntryPoint . Non è necessario creare / installare un vero servizio di Windows qui.

    
risposta data 30.11.2012 - 11:22
fonte
0

È possibile prima inviare il sito Web senza i dati di terze parti al client e quindi richiedere al client di richiedere i dati di ciascun sito di terze parti utilizzando una XmlHttpRequest al proprio server.

In questo modo è possibile visualizzare un'animazione di "segnaposto" di caricamento per ogni servizio esterno che non è ancora stato caricato. Quando alcuni dei servizi esterni richiedono più tempo per essere caricati, l'utente potrebbe già vedere i dati di quelli che hanno già risposto.

    
risposta data 30.12.2012 - 14:45
fonte

Leggi altre domande sui tag