Ho un sito Web asp.net che elabora le richieste utilizzando un exe di terze parti. Attualmente il mio flusso di lavoro èAsp.Net - Elaborazione offload su applicazione esterna
utente accede sito web utilizzando qualsiasi browser e compila un modulo con i dettagli del processo
Sito chiama un servizio di Windows self hosted WCF che è in ascolto su una porta
di Windows servizio avvia terze parti exe per elaborare il lavoro e restituisce il risultato al sito web
Sito Web visualizza il risultato restituito all'utente
Il sito Web di cui sopra era un prototipo che ora deve essere trasformato in un'implementazione pronta per la produzione. Mi rendo conto che l'architettura di cui sopra ha molti punti che potrebbero rompersi. Ad esempio, se la macchina è spenta o se il servizio di Windows si arresta in modo anomalo e non è più in ascolto sulla porta, tutte le richieste correnti cesseranno di essere elaborate. Per rendere l'architettura più robusta, sto considerando il seguente
utente accede sito web utilizzando qualsiasi browser e compila un modulo con i dettagli del processo
Sito scrive i dettagli del processo a un database
Il servizio Windows che esegue il polling del database ogni 10 secondi per un nuovo lavoro preleva il lavoro e lo esegue utilizzando l'applicazione di terze parti. I risultati sono riscritti nel database.
Il sito Web che ha ora avviato il polling del database, raccoglie i risultati e li visualizza all'utente.
La seconda architettura mi fornisce più capacità di registrazione e i lavori possono essere riavviati se sono in coda. Tuttavia coinvolge grandi quantità di polling che potrebbero non essere scalabili. Qualcuno può consigliare un'architettura migliore?
Avevamo eseguito POC per un tipo simile di requisito, abbiamo considerato MSMQ al passaggio 2 ma non implementato nel progetto. In attesa di risposte su questa interessante implementazione. – Sunny
@Sundeep - Quale alternativa a MSMQ hai utilizzato per il tuo progetto? Il progetto è stato completato o è ancora in corso? Grazie –
Molto tempo fa, l'applicazione eseguiva un processo di backend e inviava l'e-mail di notifica all'utente. Quindi, volevo sostituirlo per l'elaborazione istantanea. – Sunny