2011-02-02 22 views
6

Tengo un conjunto de tareas que me gustaría ejecutar todas las noches.¿Cómo implementar un proceso nocturno en .NET?

Estas tareas incluyen, en orden, consultar una base de datos, mover y luego cambiar el nombre de algunas imágenes y actualizar una tabla de base de datos. My first thought había sido para crear un trabajo de SQL Server y usar xp_cmdshell para mover los archivos, pero después de un poco de investigación decidí no hacerlo.

¿Cuál es la mejor manera de implementar esto como una aplicación .NET? ¿Debo crear un servicio de Windows? ¿Una aplicación de consola que está programada para ejecutarse una vez por noche? ¿Alguna otra forma genial de la que ni siquiera sé nada?

+1

si desea tareas programadas, como lo ha etiquetado, ¿qué ocurre con las tareas programadas? –

+1

Me gustaría ir con el programador de tareas de Windows probado y verdadero para iniciar una aplicación de consola .NET. –

Respuesta

10

Normalmente solo hago esto como una aplicación de consola programada. Tal vez estoy aburrido ...

+5

No tiene que ser sexy para ser funcional :) –

+2

Estoy de acuerdo ... ¿por qué hacer que su máquina haga cualquier exceso ... una simple aplicación de consola es el camino a seguir. Un servicio solo tiene sentido cuando sucede algo en intervalos cortos durante el día. – Zachary

6

Lo bueno que está buscando es Quartz.NET. Básicamente se trata de trabajos cron para .NET.

1

Solo he hecho esto con un programador de tareas que se estaba ejecutando en el servidor con el que estaba trabajando. Lo configuré para correr en un tiempo aleatorio entre las 11:30 y las 12:30. La idea de Kelloti es probablemente mucho más impresionante.

3

Normalmente hago este tipo de cosas como una tarea programada. Si se trata de una aplicación de consola .Net/C#, no escriba en Console.Out o Console.Error (las tareas programadas se ejecutan casi sin cabeza). En su lugar, use log4net y configure un appender para escribir en un archivo de registro. También configura otro appender para registrar errores en el registro de eventos de Windows.

Por supuesto, la manera más rápida y fácil sería escribir su trabajo como script perl en lugar de como código compilado, y programarlo.

2

He tenido mucho éxito con el uso del programador de tareas. Tiene mucha personalización que raya en intimidar. Yo daría una oportunidad.

Cuestiones relacionadas