2009-09-22 9 views
10

Mi equipo está teniendo un debate que es mejor: un servicio de Windows o tareas programadas. Tenemos un servidor dedicado a ejecutar trabajos y actualmente son todas tareas programadas. Algunos trabajos toman archivos, los renombran y los colocan en otros directorios de la red. Otros trabajos extraen datos de SQL, lo modifican y lo envían a otro lugar. Otros trabajos ftp archivos fuera. Hay mucha variedad, pero en general, son bastante simples.tarea programada o servicio de Windows

Me gusta que cada uno de estos se ejecute como un servicio de Windows en lugar de una tarea programada porque es mucho más fácil supervisar un servicio de Windows que una tarea programada. Algunos son diametralmente opuestos. Al final, ninguno de nosotros tiene mucha experiencia para proporcionar comparaciones factuales reales entre los dos métodos. Estoy buscando comentarios sobre lo que otros han experimentado.

Respuesta

6

Si se ejecuta constantemente - servicio de windows.

Si necesita ejecutarse en varios intervalos - tarea programada.

4

La eliminación de trabajos con la funcionalidad de compilación es un uso perfectamente válido. Tendría que volver a crear la funcionalidad completa para crear un buen servicio, y a menos que desee reaccionar ante eventos específicos, no veo ninguna razón para mover un trabajo nocturno a un servicio.

Es diferente cuando se desea procesar un archivo después de haberlo publicado en una carpeta, eso es algo para lo que crearía un servicio, eso es usar el vigilante del sistema de archivos para monitorear una carpeta.

Creo que es reinventar la rueda

2

Aunque no hay nada malo en usar el Programador de tareas, que es en sí mismo, un servicio. Pero tenemos los mismos requisitos donde trabajo y tenemos un programa de propósito general que hace varios de estos trabajos. Interpreté tu publicación para decir que ejecutarías servicios individuales para cada tarea. Consideraría escribir un programa único (basado en bases de datos) para hacer todas tus tareas, y de esa manera, cuando agregas uno nuevo, es simplemente un tarea de entrada de datos, y no un programa completamente nuevo para escribir. Si practicas control de cambios, esta diferencia puede ser significativa. Si tiene más de unas pocas tareas, el esfuerzo puede ser competitivo. Este enfoque también le permitirá crear un mecanismo de registro que se adapte mejor a sus operaciones.

Esta es una parte de nuestro documento REQUISITOS para nuestro programa de trabajo, para darle una idea de por dónde empezar:

  1. Este programa es necesario que haya conducido base de datos.

  2. Tiene que ejecutarse como un servicio de Windows.

  3. el programa tiene que ser capaz de procesar "trabajos" de la siguiente manera:

  4. trabajos necesitan ser capaces de comprobar la existencia de un archivo de origen, y tomar medidas sobre la base de la existencia o no del archivo de origen. (Es decir, proceda con el procesamiento, vs informe que el archivo no está allí vs ignórelo porque no es crítico que el archivo no esté allí.

  5. trabajos necesitan ser capaces de copiar un archivo desde una fuente a un lugar de destino o

  6. copiar un archivo de fuente, a una ubicación provisional, realice "procesamiento", y luego copiar o bien el archivo original o un resultado del "procesamiento" en la ubicación de destino o

  7. Copie un archivo de la fuente, a una ubicación provisional, realice el "procesamiento" y el procesamiento es el resultado final.

  8. Los orígenes y el destino que los trabajos podrían copiar desde y hacia pueden ser dispares: UNC, SFTP, FTP, etc.

  9. La "transformación", puede ser, cifrar/descifrar un archivo, un análisis de los datos archivo para el formato correcto, alimentando el archivo al mainframe a través de emulación de terminal, etc., generalmente implementado llamando a una línea de comando que pasa parámetros a un .exe

  10. Los trabajos deben poder limpiarse por sí solos, según sea necesario. es decir, eliminar archivos intermedios u originales, copiar archivos en una ubicación de archivo, etc.

  11. El programa necesita poder determinar el éxito y el fracaso de cada fase de un trabajo y tomar las medidas apropiadas que podrían iniciar sesión, y posiblemente otra notificación, cancelar procesamiento adicional en caso de falla, etc.

  12. Los trabajos deben configurarse para activarse en determinados tiempos configurados, o en ciertos intervalos (opcionalmente durante ciertas horas configuradas), es decir, cada 15 minutos de 9:00 a 5: 00.

  13. Tiene que haber una interfaz de usuario para agregar nuevos trabajos.

  14. Tiene que haber un botón para presionar para iniciar un trabajo como si un evento del temporizador lo hubiera activado.

  15. La pantalla estándar del programa debe mostrarle a un operador qué está sucediendo y si el programa está funcionando correctamente.

Todo esto se basa en la premisa de que es un hecho que usted escribe su propio software. También hay varios programas de programadores de tareas empresariales disponibles en el mercado. Comprar de la plataforma puede ser una mejor solución para usted.

+0

Gracias por todas las sugerencias. Mucha buena idea. – user177213

+0

Me parece que SQL Server Integration Services puede ser una buena opción para los requisitos que ha mencionado, con algunos ScriptTasks personalizados para operaciones que no se proporcionan de manera inmediata. Si ya tiene .exe implementado para estas tareas (como usted menciona), puede usarlas dentro del marco SSIS. Y la implementación se puede administrar utilizando trabajos de SQL Server, ya sea a pedido o en un horario. –

+0

Por supuesto, eso se basa en la suposición de que ya está usando SQL Server - No sé qué alternativas hay disponibles de otros proveedores ... –

5

Tarea programada -

  1. Cuando la actividad se llevará a cabo en un horario fijo/predefinido.
  2. Toma menos memoria y recursos de sistema operativo.
  3. No requiere instalación.
  4. Puede tener la interfaz de usuario (por ejemplo, enviar correo electrónico recordatorio a los morosos.)

servicio de Windows-
  1. Cuando se requiere una supervisión continuar.
  2. Hace que el sistema operativo ocupado consuma más.
  3. Requiere instalación/desinstalación al cambiar la versión.
  4. Sin IU en absoluto (ej.Procesar un correo electrónico tan pronto como llegue)

utilizan de modo inteligente

Cuestiones relacionadas