/ / ¿Comprobar la salud de las tareas programadas? - ColdFusion, ColdFusion-9

¿Comprobar la salud de las tareas programadas? - ColdFusion, ColdFusion-9

Recientemente tuvimos un problema donde ColdFusionla tarea programada no se reanudó después de una actualización de Windows y un reinicio del servidor de CF. ¿Hay alguna forma de controlar el estado de las tareas programadas y recibir alertas si no se ejecutan correctamente? ¿O necesitaría escribir una tarea para analizar los archivos de registro? para esa informacion?

Respuestas

4 para la respuesta № 1

Puede utilizar la API de administrador para obtener información sobresus tareas programadas Lo siguiente devuelve una matriz de estructuras con información sobre cada tarea programada. luego puede recorrer la matriz y mirar la variable last_run.

<cfset arySchedTasks = createobject("java","coldfusion.server.ServiceFactory").getCronService().listall() />

0 para la respuesta № 2

Si desea comprobar que las tareas programadas sontrabajando en el nivel más general, una forma es programar una tarea de "latido", ejecutándose con la frecuencia que desee. Configure la tarea para actualizar un contador, cambiar una marca de tiempo, enviar un correo electrónico, activar un SMS "Vivo" todas las mañanas, agregar una entrada de registro, lo que tenga sentido. Esto no le dirá que todas sus tareas se están ejecutando , pero le dirá que el servidor está activo y que el sistema de tareas programado está funcionando.

Otra opción es canalizar tus tareas a través de unPunto de entrada único: una especie de controlador frontal para tareas. Esto delega la configuración y la configuración de tareas individuales a su código, en lugar del Administrador de CF. Su controlador de tareas maestro incluiría un código de activación para cada tarea. Programe el controlador para que se ejecute con la frecuencia que sea necesaria, por lo tanto, una sola tarea, en lugar de muchas. En el controlador, algo como esto, tal vez cada cinco minutos:

Check the time/date, compare against set of tasks
If time (or frequency) is A, run tasks P,Q,R, log success/failure
If time is B, run tasks S,T, log success/failure
If time is C, run tasks U,V,X, log success/failure
Send heartbeat with success/failure codes for all relevant tasks

Una ventaja de este enfoque es que puedesexprese flujos de trabajo mucho más ricos / no-go: haga que las tareas se ejecuten en frecuencias semi-aleatorias, ejecute tareas basadas en el éxito o el fracaso de otras tareas, etc. Si ve / recibe el indicador de latido, sabe que lo hizo su controlador de tareas en hecho correr


0 para la respuesta № 3

Otra opción sencilla. Habilite el archivo de salida para cada tarea y verifique estos archivos mediante una tarea Cron independiente: si se cambió el archivo dentro del período de tiempo requerido, esto significa que se ejecutó la tarea del programador.