Estoy planeando crear una utilidad, que consultará la base de datos y almacenará cierta información (en otra tabla de la base de datos). Es una utilidad de subprocesos múltiples y debe ejecutarse cada 5 o 10 minutos / más tarde puede ser tres veces en un día.
Veo dos opciones para lograr esto en la programación C # / DotNet.
- creando el servicio de Windows con un enfoque de temporizador dentro de él.
- un programa de consola y programarlo usando el programador de tareas de Windows.
¿Cual prefieres y porque?
Respuestas:
Comentarios de un colega mío de ayer sobre este mismo tema
El artículo de Jon Galloway de 2005 "// TODONT: Use un servicio de Windows solo para ejecutar un proceso programado" es una buena lectura. Sugiero que los comentarios también se lean porque la discusión aún continúa hasta hoy y que también proporcione algunos buenos contraargumentos.
Personalmente, estoy de acuerdo con mi colega en este caso. Mantenlo simple por el mayor tiempo posible. Y si está implementando en el servidor Win2008, consulte el Programador de tareas y todas las características que ofrece el programador estándar. Para mí, el asesino debía comenzar una tarea programada cuando ocurre un evento.
fuente
Los servicios se utilizan con fines administrativos o para ofrecer un servicio a múltiples aplicaciones.
Las programaciones se utilizan para ejecutar una tarea varias veces que no requieren necesariamente permisos adicionales.
fuente
He escuchado los argumentos para usar el Programador de Windows, pero siempre he optado por escribir mi aplicación como un servicio. Al principio pensé que sería una mejor solución en un entorno agrupado, pero eso no es realmente cierto. La conclusión es que no tenía una buena razón más que "sentir" como un mejor diseño.
fuente
¿Por qué no prueba Quartz.net? Lo
usé una vez y puedo decir que es un marco poderoso para crear su propio programador, y proporciona un Servicio preconstruido que ejecutará su Trabajo programado (almacenado en la base de datos o simplemente en un archivo XML ) http://quartznet.sourceforge.net/
fuente
Si desea que el usuario tenga más control sin que tenga que construirlo, use el Programador de tareas. Parece que Google hace esto con la actualización de sus aplicaciones. Dependiendo del usuario, no es difícil administrar la tarea. Saque al usuario del bucle y cree un servicio. La mayoría de la gente nunca los tocará.
fuente