¿Cómo obtener la lista de tareas programadas y los resultados de la última ejecución en ColdFusion?
scheduled-tasks coldfusion-8 (3)
@eric kolb tiene razón, esa es la manera de hacerlo programáticamente. Si desea más control sobre cómo reacciona la lista, pruebe el siguiente código (esencialmente el mismo, pero en cfscript):
<cfscript>
scheduledTasksArray=ArrayNew(1);
taskService=createobject(''java'',''coldfusion.server.ServiceFactory'').getCronService();
scheduledTasksArray=taskservice.listall();
Además, para responder # 2 y # 3 (que es más o menos una pregunta de dos partes si lo haces bien): Cuando la tarea se ejecute, envíate un correo electrónico directamente en la parte superior diciendo "¡HEY! SOY EN MARCHA! !!! " y luego otro diciendo "¡EY! ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ en la parte inferior del código de la tarea, también puede agregar una marca de tiempo para indicar cuándo se inició y se detuvo (el registro de esto en una base de datos también funciona). Además, para saber cuándo se ejecutará a continuación, simplemente eche un vistazo a la última vez Y el campo "intervalo" recuperado de los resultados de la llamada a ServiceFactory. (Si necesita más información sobre lo que quiero decir con esto, no dude en preguntar).
Espero que esto ayude si aún no ha descubierto lo que necesitaba
Estamos intentando crear un panel de control para nuestros trabajos cron: CF, Java, SQLServer, etc., de modo que podamos ver cuándo se ejecutaron las cosas por última vez, cuál fue el resultado y cuándo están programadas para ejecutarse a continuación.
¿Hay alguna manera con la API CFAdmin o algún truco <cfschedule>
no documentado para obtener una lista de:
- ¿Qué tareas están programadas?
- ¿Cuál fue el último tiempo de ejecución?
- ¿Tuvo éxito?
- ¿Cuándo está programado para ejecutarse de nuevo?
Actualmente estamos en CF8, pero nos estaremos actualizando a CF9 en unas pocas semanas.
Es posible "publicar" los resultados del trabajo. La respuesta de la solicitud HTTP se puede escribir en el servidor de archivos, y tendrá los valores del último trabajo ejecutado.
<cfschedule action = "update"
task = "TaskName"
operation = "HTTPRequest"
url = "/index.cfm?action=task"
startDate = "#STARTDATE#"
startTime = "12:00:00 AM"
interval = "Daily"
resolveURL = "NO"
requestTimeOut = "600"
publish = "yes"
path = "#PATH#"
file = "log_file.log">
A continuación, puede verificar el registro en la base de datos si lo desea. Ya que es la respuesta de la página, también puede obtener y almacenar errores y advertencias aquí.
Hice una pequeña investigación sobre esto para ti. Encontré una referencia algo más antigua que todavía es válida, al menos en CF8 y probablemente en CF9 también.
<cfobject type="JAVA" action="Create" name="factory" class="coldfusion.server.ServiceFactory">
<cfset allTasks = factory.CronService.listAll()/>
<cfloop index="i" from="1" to="#ArrayLen(allTasks)#">
<cfdump var="#allTasks[i]#" />
</cfloop>
De http://www.bpurcell.org/blog/index.cfm?mode=entry&ENTRY=935
Esto responde a sus preguntas # 1 y # 4. En cuanto al # 3, no puede haber respuesta a eso. El motor de tareas programadas de ColdFusion está cargando la URL especificada a la hora indicada. No hay éxito o falla, simplemente realiza una solicitud HTTP.
Espero que esto ayude.