Come chiamare il server una pagina Web per i dati su un timer

0

La mia domanda non è come chiamare una pagina web nel codice, ma piuttosto quale sarebbe l'architettura corretta per essa.

Ho un'app Web MVC che visualizza determinati dati dal nostro database quando l'utente visita una pagina. I dati in questione provengono da un altro sito e devo caricarlo nel nostro database una volta ogni ora chiamando il servizio web di altri siti.

La mia domanda è, dovrei avere un servizio Windows separato in esecuzione sul mio server che chiama la pagina e inserisce i dati rilevanti nel nostro database, o dovrebbe farlo su un timer direttamente dall'app web? Sembra che sarebbe un modo strano per farlo, ma forse questo è standard? Abbiamo già un programma in esecuzione sul server che chiama un gestore di ashx una volta ogni tanto e potrei facilmente scrivere un controller per gestirlo, sono solo curioso di sapere qual è l'approccio migliore corrente. Ho cercato alcuni eventi del timer sul lato server nelle app Web e, mentre ho trovato le risposte, c'erano anche molte "sembra che tu stia scendendo una tana del coniglio / problema XY / etc e mi piacerebbe sapere modo corretto.

    
posta eddie_cat 01.06.2016 - 20:05
fonte

1 risposta

2

Vorrei discutere sul lato del servizio / attività pianificata per aggiornare i dati.

La tua applicazione web può diventare inattiva o inutilizzata per un periodo di tempo. A questo punto, IIS metterà tutte le istanze dei processi di lavoro che eseguono l'applicazione in modalità sospensione.

Parlare di istanze di processi di lavoro. Sono completamente inconsapevoli l'uno dell'altro e disporre di più timer, uno per ciascun processo di lavoro in IIS, potrebbe portare a risultati imprevisti nel DB. E forse il sito esterno ti piace meno per aver richiesto gli stessi dati N volte invece di 1 allo stesso tempo o quasi allo stesso tempo.

Un singolo servizio con un timer o semplicemente un'applicazione di console chiamata da Windows Task Scheduler sembra una soluzione più pulita.

    
risposta data 01.06.2016 - 20:40
fonte

Leggi altre domande sui tag