如何监控Coldfusion中的计划任务是否正确设置?

时间:2012-12-01 21:52:45

标签: debugging coldfusion scheduled-tasks

我正在尝试设置我的第一个Coldfusion计划任务,但无法让它工作。我无法访问cfadmin,因此我需要使用cfschedule标记进行操作。我正在设置这样的东西:

<cfschedule action = "update"
    task = "taskManager" 
    operation = "HTTPRequest"
    url = "path/to/task_manager.cfm"
    startDate = "12/01/12"
    startTime = "10:30 PM"
    interval = "60"
    resolveURL = "Yes"
    publish = "No"
    path = "#variables.baseUrl#"
    requestTimeOut = "100">

我正在加入task_init.cfm。如果我在浏览器中打开此页面,则不会报告任何错误,但没有任何反应。

问题:
我知道CFAdmin需要允许计划任务。还有办法测试任务是否正在运行?任务应该只是发送一封电子邮件,所以我可以看看它是否有效,但我没有得到任何东西,我很好奇我是否做错了。

谢谢!

修改
好的,所以我就在那里。我可以列出这样的任务:

 <cfdump output="dump.txt" label="catch" var="#createobject("java","coldfusion.server.ServiceFactory").getCronService().listall()#">

它为我提供了所有当前计划的任务。

我现在正在调用我的任务:

<cfschedule  
proxyport="80"
port="80"
action="update"
operation="HTTPRequest"
task="taskManager_init"
interval="60"
publish="NO"
requestTimeOut="500"
resolveurl="NO"
startDate="12/01/2012"
startTime="11:30:00 AM"
URL="http://www.page.com/t/task_manager.cfm"
>

当我调用然后转储所有任务时,会创建一个类似的条目:

 xx) [undefined array element] 

而不是:

 xx) [struct]
disabled: NO
file: [empty string]
http_port: 80
http_proxy_port: 80
interval: xxxx
operation: HTTPRequest
password: xxxxxxxxxx
path: [empty string]
paused: NO
proxy_server: [empty string]
publish: NO
request_time_out: 500
resolveurl: NO
start_date: 12/12/2012
start_time: 1:00:00 AM
task: some task
url: xxxxx
username: xxxxxxx

我可以删除[undefined array element]来电:

 <cfschedule action = "delete" task = "taskManager_init"> 

所以,我可以添加/删除任务,但是它们没有在列表中正确显示,因此不会按预期执行。

知道我做错了什么吗? (除了周一打电话给我的系统管理员......)

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以查看cfroot \ lib \ neo-cron.xml配置文件。这将确认信息已经保存。

正在运行的任务可以生成输出或将详细信息放入日志文件或数据库中。即使ColdFusion JVM运行正常,我也看到调度程序运行了几个月,然后才停止运行。

同样path = "#variables.baseUrl#"看起来很奇怪。我不认为任务调度程序支持变量作为配置选项的一部分。你可能有