Tenemos un servidor 2012 que tiene alrededor de 20 tareas programadas que se utilizan para la supervisión. Hemos creado un servidor de 2016 para reemplazarlo y, a medida que paso las tareas al nuevo servidor, me he encontrado con un problema. La mayoría de nuestras tareas se ejecutan cada pocos minutos.
En Server 2012, programaríamos que la tarea comenzara a las 1200 a. M. Del día actual (es decir, una hora en el pasado) y volvería a ocurrir cada X minutos. La tarea comenzaría en su próxima hora programada. Perfecto.
En Server 2016, las programaciones que comienzan en el pasado no se ejecutan. Así que tuvimos que programarlo para comenzar en el futuro. Esto está bien hasta que reinicies. Ahora la hora de inicio está en el pasado y no se ejecutará. Ni siquiera registra una ejecución fallida. La columna Tiempo de ejecución siguiente muestra que debería ejecutarse pero no lo hace.
Además de crear dos desencadenantes, uno que comienza en el futuro y otro que comienza al reiniciar (lo que no queremos hacer ya que algunas tareas solo deberían ejecutarse en momentos específicos), ¿hay una mejor manera? Esto parece ser un error. La versión 2012 funcionó muy bien.
ACTUALIZAR
Hay una solución para esto. Cree un horario único que se ejecute indefinidamente. Esto funciona después de reiniciar justo como era de esperar. Sé que esto no es bueno para horarios que son "extraños", pero funciona bien para cosas que queremos ejecutar cada 3 minutos o lo que sea.
Respuestas:
Para su información, he confirmado con Microsoft a través de un ticket de soporte que abrí ayer que esto es un error. El técnico de soporte confirmó que está clasificado internamente como un error y que se está desarrollando un parche. Me dieron una fecha objetivo de lanzamiento del parche para julio / agosto.
Esto afecta tanto a Windows 10 como a Server 2016. Mis sistemas de prueba fueron parcheados hasta la actualización acumulativa de ayer. El problema no ocurrió en Server 2012 R2 y Windows 7.
EDITAR: posiblemente en agosto, pero definitivamente en septiembre de 2017, este problema se solucionó en los sistemas en los que lo he probado.
fuente
Este problema solo parece afectar las tareas con la
Repeat task every: ...
opción establecida.Hasta ahora, tenía la impresión de que
trigger at X, then repeat every 10 minutes
era una forma innecesariamente complicada de escribirtrigger at every xx:x0
en el Programador de tareas.Al parecer, no lo es. Aparentemente, significa exactamente lo que dice: la tarea se desencadena en
X
y luego, y solo entonces se repite. Sin disparador inicial, sin repetición. Parece que no hay una manera simple de programartrigger at every xx:x0
en el Programador de tareas (¿o existe? Eso podría ser una buena pregunta separada de Serverfault). El hecho de que la columna "Próximo tiempo de ejecución" muestre algo diferente no es muy útil."Resolvemos" este problema programando que la tarea se ejecute a las 12:00 todos los días (en lugar de solo un día) y luego repitiendo cada
...
minuto durante 1 día. Esto significa que si se produce un reinicio, a las 12:00, las tareas se reanudarán. No es ideal, pero es un compromiso aceptable aquí.Supongo que podría reducir el "tiempo de inactividad de la tarea" a 1 hora creando un disparador por cada hora y hacer que la tarea se repita cada
...
minuto durante 1 hora.Sorprendentemente, parece que siempre ha sido así (ver el primer comentario de esta respuesta ), simplemente nunca nos dimos cuenta hasta ahora. Según los otros comentarios de la respuesta vinculada, la forma canónica de resolver este problema es activar la
Run task as soon as possible after a scheduled start is missed
opción.Entonces, sí, es un error, pero es la columna "Próximo tiempo de ejecución" que tiene errores, no la programación real.
fuente
1 . Windows 2016 Server necesariamente requiere estas opciones en su trabajo:
Noté estas opciones en la captura de pantalla
2 . Añadir disparador adicional. Como:
etc. en el sentido de: mover una tarea para comenzar en el momento deseado
3 . En algunas tareas en Windows 2016, implementé este enfoque.
fuente