3

我正在尝试设置我的第一个 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"> 

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

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

谢谢!

4

1 回答 1

2

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

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

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

于 2012-12-02T06:14:05.050 回答