【问题标题】:how to monitor if a scheduled task in Coldfusion sets up correctly?如何监控 Coldfusion 中的计划任务是否设置正确?
【发布时间】:2012-12-01 21:52:45
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 您的开始日期格式不明确。也许你和 cf 对它代表什么有不同的看法。
  • 嗯。什么是更通用的格式? 2012:12:01 00:09:00?
  • 我对 ansi/iso 标准很满意。 yyyy-mm-dd

标签: debugging coldfusion scheduled-tasks


【解决方案1】:

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

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

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

【讨论】:

  • 我完全删除了路径参数,因为现在的任务应该只给我发送一封测试邮件,所以不需要写任何文件。
  • 这是一个很好的测试。它涵盖了调度程序和cfmail。 ColdFusion 也会自动将条目添加到 scheduler.log 中
  • 是的,它现在或多或少都在工作,除了我无法运行设置计划。当我在 sn-p 上运行时,我没有收到任何错误,因此 &lt;cfschedule&gt; 必须正常执行。尽管如此,如果我输出所有正在运行的测试,它不存在,所以它没有触发......需要进一步干预。到目前为止谢谢!
猜你喜欢
  • 1970-01-01
  • 2010-12-13
  • 2011-04-15
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 2012-11-21
相关资源
最近更新 更多