views:

355

answers:

2

We're trying to build a dashboard for our chron jobs -- CF, Java, SQLServer, etc. so that we can see when things were run last, what the result was, and when they're scheduled to run next.

Is there a way with the CFAdmin API or some undocumented <cfschedule> trick to get a list of:

  1. What tasks are scheduled?
  2. What the last run time was?
  3. Did it succeed?
  4. When is it scheduled to run again?

We're currently on CF8, but will be upgrading to CF9 within a few weeks.

Thanks! Chris

+6  A: 

I did a little research into this for you. I found a somewhat older reference that is still valid, at least in CF8 and presumably in CF9 as well.

<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>

From http://www.bpurcell.org/blog/index.cfm?mode=entry&amp;ENTRY=935

This answers your questions #1 and #4. As for #3, there can be no answer to that. ColdFusion's scheduled task engine is just loading up the specified URL at the prescribed time. There is no success or fail -- it simply performs an HTTP request.

Hope this helps.

Eric Kolb
Nice, +1. I would opt for `<cfset factory = CreateObject("java", …)>`, though, I find that easier to read.
Tomalak
Awesome. Exactly what I was trying to accomplish. I think I'll create a table in the db that can hold running/failure states for these jobs. Set it as 'running' when it starts, and when it makes it to completion, set it as 'success'
Chris Brandt
A: 

what about c sharp code?? i need it urgently