Quanto è affidabile pianificazione di Windows per programmare il codice per eseguire più volte?

StackOverflow https://stackoverflow.com/questions/722678

Domanda

Ho un po 'di codice che ha bisogno di sedersi su una macchina Windows 2003 server ed eseguire ogni minuto.

Qual è il modo consigliato di gestire questo? E 'ok per la progettazione come un servizio di console e solo il task scheduler colpire mai minuto? (È anche possibile?) Devo solo succhiare in su e scrivere come un servizio di Windows?

È stato utile?

Soluzione

Dal momento che deve essere eseguito ogni singolo minuto, vorrei suggerire a scrivere un servizio di Windows. Non è molto complicato, e se non hai mai fatto prima, sarebbe bello per voi per imparare come è fatto.

Chiamare l'operazione pianificata ogni minuto non è qualcosa che mi sento di raccomandare.

Altri suggerimenti

Direi aspirare e scriverlo come servizio di Windows. Non ho trovato le operazioni pianificate di essere molto affidabile e quando non funziona, devo ancora trovare un modo semplice per scoprire perché non ha.

Operazioni pianificate di Windows è stata abbastanza affidabile per i nostri scopi e li favorire in quasi tutti i casi oltre i servizi di Windows grazie alla loro facilità di installazione e le caratteristiche avanzate di recupero. La sempre sulla natura di un servizio di Windows potrebbe finire per essere un problema se una parte del codice che è stato scritto si conclude up sempre chiuso a chiave o in loop in un pezzo di codice che non dovrebbe essere in. In genere scriviamo il nostro codice in un modo simile a questo

Init();
Run();
CleanUp();

Poi, come parte dell'operazione pianificata abbiamo messo un limite di tempo su quanto tempo il processo può essere eseguito e farlo uccidere il processo se funziona più a lungo. Se abbiamo un pezzo di codice che sta avendo difficoltà Operazioni pianificate uccideranno e il processo inizierà nel minuto successivo.

se avete bisogno di fare eseguire ogni minuto, vorrei costruire come un servizio di Windows. Non vorrei usare lo scheduler di niente di meno che un compito quotidiano.

Io direi che dipende da quello che stava facendo, ma in generale io sono sempre a favore di avere gli strati meno trafficato. Se si scrive come un servizio di console e utilizzare il task scheduler allora hai due posti per mantenere andando avanti.

Se si scrive come un servizio di Windows, allora hai solo si mette meno da controllare in caso qualcosa vada storto.

Durante la ricerca di aiuto servizio di linea, mi sono imbattuto in un ottimo articolo di Jon Galloway .

Ci sono vari diadvantages se un servizio di Windows viene utilizzato per un'operazione pianificata. Ero d'accordo con esso. Vorrei suggerire di utilizzare un'operazione pianificata, semplice nella realizzazione. Si prega di fare riferimento a informazioni dettagliate di attuazione della task scheduler . Spero che queste informazioni aiuta a finalizzare l'approccio di implementazione.

L'unico altro punto da considerare, è che se si sta cercando lavoro comporta un qualche tipo di interazione del database, prendere in considerazione esaminando i servizi di integrazione / programmazione forniti dal database.

Per esempio, la creazione di un pacchetto di SSIS per SQL Server relativi servizi può sembrare un po 'come eccessivo, ma può essere integrato perfettamente con l'ambiente e avrà una propria registrazione / controllo degli errori meccanismi già in vigore.

Sono d'accordo, è una specie di uno spreco di energie per creare anche un file eseguibile console e pianificare per essere eseguito ogni minuto. Vorrei suggerire di esplorare qualcosa di simile a Quartz.Net . In questo modo è possibile creare un lavoro semplice e pianificarne l'esecuzione ogni minuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top