is used to define and run ColdFusion scheduled tasks. For some reason the tag does not return a list of defined tasks, and a user on cf-talk asked for this functionality recently. So, until we update , here is a UDF that returns a query containing the details about all scheduled tasks. The bulk of this code (the regular expressions, funky nested looping, and so on) are the work of Michael Dinowitz (and I have retained his warnings about not doing what he is about to do).
GetScheduledTasks() Function Returns Scheduled Task List
14 Comments
P
Patrick Whittingham
Ben/Michael/Rahul -
That's a cool 'features' of servicefactory. Can one get that kind of information for ALL of cfquery(s), just like one sees in debug mode for a template. I need all of the queries/sql without giving the list of cfquery names. I've seen 1 hardcoded sql via servicefactory,but not all of the cfquery sq for a template. I need the sql,recordcount and time.
M
So when is Adobe going to stop giving us all this good stuff in an undocumented factory and instead document it? ;)
R
The above UDF work for me on CF 7.0.1
But I use this undocumented feature to get me the array of all defined scheduled task (without too much regex stuff )
<cfscript>
alltask=ArrayNew(1);
taskService=createobject('java','coldfusion.server.ServiceFactory').getCronService();
alltask=taskservice.listall();
</cfscript>
<cfdump var="#alltask#">
M
ColdFusion has 4 RegEx functions. 2 for find (REFind/REFindNoCase) and 2 for replace (REReplace/REReplaceNoCase). Most of the RegEx syntax are allowed within these functions and this is what was used in the example. Negative lookaheads are possible and were the original thought until a larger pattern was found and simpler code was written.
If you need more RegEx power for things like positive and negative look-behinds, you can always leverage the power of the Java RegEx engine directly using CFOBJECT or CreateObject().
B
KAR, I have no idea what you are asking, sorry.
--- Ben
K
King AdRock
Ben,
What do you use for regular expression strings?
B
Sami, yep, I've asked for this enhancement.
Thorsten. Run that cfschedule line by itself and see if it returns data.
--- Ben
M
Hi,
for some reason the UDF gives an empty result set on CFMX 6.1.
But the CF-Administrator shows my scheduled tasks.
Does it only work on CFMX 7 ?
Kind regards
Thorsten
S
Sami Hoda
Is this something you can ask for in the next version of ColdFusion? (hint, hint)
R
that is a rad bit of code Rahul!
D
Don Vawter
Just a note. In CF 8 you need to add a "paused" column to the query.
C
I found that in CF9 I needed to not only add paused (as Don mentioned) but also last_run and end_time. (We're talking about just adding them to the end of the querynew function on line 7.)
D
For cf9 you can use the CronService.listAll method in coldfusion.server.ServiceFactory
http://stackoverflow.com/questions/2320396/how-to-get-list-of-scheduled-tasks-and-last-run-results-in-coldfusion
G
Railo 3+ and CF10+ now offer a **list** action: <cfschedule action="list" returnvariable="qTasks">