Desidero scrivere un servizio che esegue il polling di un database ed esegue un'operazione in base ai dati da riportare.Creazione di un servizio di windows # per eseguire il polling di un database
Non sono sicuro di quale sia il modo migliore per farlo, posso trovare alcuni blog a riguardo e questa domanda di overflow dello stack Polling Service - C#. Tuttavia sono diffidente nel dire che sono tutti piuttosto vecchi e forse obsoleti.
Qualcuno può consigliarmi sull'attuale consiglio o le migliori pratiche (se ce ne sono) su come fare qualcosa del genere o indicarmi un post più recente su questo. Da ciò che posso raccogliere usando un timer o task TPL ci sono due modi potenziali per farlo.
Se timer sono ancora suggerito allora come faranno funzionano quando il servizio viene arrestato, perché le operazioni ho intenzione di questi servizi da fare potrebbero potenzialmente prendere oltre 30 minuti, questo è il motivo per cui dico Attività Utilizzare perché posso usare una cancellazione compito token ma questi generano eccezioni quando vengono cancellati (correggimi se sbaglio) e non penso di volere davvero questo comportamento (anche se correggimi se pensi che ci sia un motivo lo vorrò).
Mi dispiace che potrei chiedere parecchio in una sola domanda, ma non sono del tutto sicuro di ciò che sto chiedendo.
Guarderei il modello produttore-consumatore per i principianti. Un thread può eseguire il polling e raccogliere informazioni sul lavoro, quindi passarlo al gestore della coda. –
Con quale frequenza effettuerai il polling del database? È questo * tutto * che il servizio farà? Se tutto il servizio esegue il polling del database raramente e potenzialmente esegue un'attività molto lunga, probabilmente è meglio scrivere una semplice vecchia applicazione console e configurarla come operazione pianificata in Windows. –
Hai qualche link su come questo può essere implementato nel codice Grant? Jim - Ho intenzione di sondarlo forse mai 2 minuti. E sì, questo è tutto ciò che il servizio farà, ma potrei aggiungere ulteriori funzionalità in seguito per monitorare anche un feed online. – user2647347