【问题标题】:ColdFusion scheduled tasks reliable?ColdFusion计划任务可靠吗?
【发布时间】:2011-07-03 08:49:19
【问题描述】:

现在这可能是一个非常模糊的问题,但计划任务的可靠性如何?例如,如果我设置一个任务在每天下午 3 点做某事,并假设代码中没有错误,ColdFusion 会始终确保它每天下午 3 点运行吗?

【问题讨论】:

  • 我发现 ColdFusion 调度程序非常可靠。

标签: coldfusion scheduled-tasks reliability


【解决方案1】:

我会说是的,如果它按计划运行并且您的 COLDFUSION 服务器正在运行(真的很重要 ;)),它将在下午 3:00 运行。 我经常使用它。我的一个项目中有近 25 个时间表来生成每日报告和电子邮件统计信息。按计划页面确保您的页面不会超时,因为如果您记录/发送错误电子邮件,ColdFusion onError 方法不会捕获此错误,或者您永远不会知道脚本没有正常运行。

【讨论】:

  • 如果您在自定义应用程序下设置您的计划作业,那么您可以根据需要配置onError()
  • 你的意思是Application.cfc中的onError函数吗?
  • 是的,我们实际上在与我们的主网站不同的应用程序下拥有所有计划的作业,如果它们失败,我们会捕获错误详细信息并将它们通过电子邮件发送给团队,以便他们可以采取任何必要的行动。如果这是您的方式,请务必确定某种 IP 限制等。 TBH 我希望 CF 可以从命令行运行,以避免在 Web 应用程序安全性中打孔的问题,以便调度程序可以运行特定的 URL。
  • 嗨 Ciaran,我说的是超时问题。超时错误不会捕获 onError 方法,因为线程已经运行了足够的时间,并且 ColdFusion 不会花费更多时间来执行代码 onError 函数以发送电子邮件等。
  • 嗨 Pritesh,我认为这是不正确的,至少在 CF 9.0.1 中是这样。超时异常将由onError() 处理,就像任何其他异常一样。我做了一个快速实验 - 请参阅 gist.github.com/1063287 并亲自尝试。
【解决方案2】:

我们过去常常使用计划任务来每周、每天、每小时以及每分钟和每秒运行一些东西。每分钟运行一次,我们必须 hack neo-cron.xml 文件,总体而言它运行良好,直到 ColdFusion 9.0.1 - see here - 然后我们不得不将运行频率超过每分钟一次的任务移出另一个调度程序。

我们决定使用VisualCron 并且没有回头。与 CF 调度不同,VisualCron 允许我们运行命令行任务,而不是只点击有时可能不必要的 URL。

CF10 是apparently,对计划任务引擎进行了重大更改,因此看看它们改进了什么应该会很有趣。但是对于间隔大于一分钟的任务,当前的 CF 调度引擎非常可靠。

希望有帮助!

【讨论】:

    【解决方案3】:

    根据我的经验,它们非常可靠。我们将它们用于每天和每周运行的许多自动化任务。从来没有让我们失望过。

    作为检查,在程序中添加一封电子邮件,这样如果您收到每日电子邮件,您就知道计划任务已运行。如果没有出现问题,但除非您的网络服务器或coldfusion 停止,否则一旦设置完毕,它应该会一帆风顺。

    【讨论】:

      【解决方案4】:

      CF 将始终在您设置计划任务时运行,无论它是否捕获错误。这意味着,下一个计划任务将在上一个任务出错时作为间隔时间运行。

      【讨论】:

        【解决方案5】:

        根据我的经验,它们非常可靠。

        如何判断任务是否运行:

        对于 Railo 服务器,查看任务是否运行或了解任务状态的一种方法是检查“scheduler.log”。这通常位于 /WEB-INF/railo/logs 目录中。在这里可以查看任务是否执行,是否超时等。

        对于CF服务器,你可以通过创建一个对象来设置一个定时任务数组,如下图,然后循环或者cfdump就可以了:

        <cfset arySchedTasks = createobject("java","coldfusion.server.ServiceFactory").getCronService().listall() />
        

        【讨论】:

          猜你喜欢
          • 2011-04-15
          • 2013-10-02
          • 2012-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多