现在这可能是一个非常模糊的问题,但计划任务的可靠性如何?例如,如果我设置一个任务在每天下午 3 点做某事,并假设代码中没有错误,ColdFusion 是否总是确保它每天下午 3 点运行?
5 回答
我们过去常常使用计划任务来每周、每天、每小时、每分钟和每秒运行一些东西。每分钟运行一次,我们不得不破解neo-cron.xml
文件,总体而言,它运行得非常好,直到 ColdFusion 9.0.1 -请参阅此处- 然后我们不得不将运行频率高于每分钟一次的任务移至另一个调度程序。
我们决定使用VisualCron并且没有回头。与 CF 调度不同,VisualCron 允许我们运行命令行任务,而不是只点击有时可能不必要的 URL。
CF10显然对计划任务引擎进行了重大更改,因此看看它们改进了什么应该会很有趣。但是对于间隔大于一分钟的任务,当前的 CF 调度引擎非常可靠。
希望有帮助!
我会说是的,如果它是计划的并且你的 COLDFUSION 服务器正在运行(真的很重要 ;)),它将在下午 3:00 运行。我经常使用它。我的一个项目中有近 25 个时间表来生成每日报告和电子邮件统计信息。在计划页面上确保您的页面不会超时,因为如果您记录/发送错误电子邮件,则 ColdFusion onError 方法不会捕获此错误,或者您永远不会知道脚本未正确运行。
根据我的经验,它们非常可靠。我们将它们用于每天和每周运行的许多自动化任务。从来没有让我们失望过。
作为检查,在程序中添加一封电子邮件,这样如果您收到每日电子邮件,您就知道计划任务已运行。如果没有出现问题,但除非您的网络服务器或coldfusion 停止,否则一旦全部设置完毕,它应该会一帆风顺。
CF 将始终在您设置计划任务时运行,无论它是否捕获错误。这意味着,当上一个任务出错时,下一个计划任务将作为间隔时间运行。
根据我的经验,它们非常可靠。
如何判断任务是否运行:
对于 Railo 服务器,查看任务是否运行或了解任务状态的一种方法是检查“scheduler.log”。这通常位于 /WEB-INF/railo/logs 目录中。在这里您可以查看任务是否执行,是否超时等。
对于 CF 服务器,您可以通过创建如下所示的对象来设置计划任务数组,然后只需循环或 cfdump 即可:
<cfset arySchedTasks = createobject("java","coldfusion.server.ServiceFactory").getCronService().listall() />