计划任务是不是以与网页相同的方式加载 Application.cfc?
Posted
技术标签:
【中文标题】计划任务是不是以与网页相同的方式加载 Application.cfc?【英文标题】:Do scheduled tasks load Application.cfc in the same way as web pages?计划任务是否以与网页相同的方式加载 Application.cfc? 【发布时间】:2011-01-23 06:52:51 【问题描述】:计划任务是否以与网页相同的方式加载 Application.cfc?我们有一个每晚运行的任务,需要使用加载到应用程序中的服务 cfc。应用程序范围是否会以调用标准网页时的方式存在?有什么不同或需要注意的问题吗?
【问题讨论】:
【参考方案1】:CF 任务调度程序对您在任务中指定的 URL 进行 HTTP 调用,因此所有标准规则都适用。 Application.cfm/application.cfc 已运行,应用程序范围存在,等等。
您需要记住的唯一一件事是调度程序本身无法识别错误,因此您应该以这样一种方式编写任务,以便在错误时记录、发送电子邮件等。而且,在测试期间,可能会成功。
编辑: Sergii 注意到了一些我忽略的东西。调度程序不维护 cookie。它的行为更像蜘蛛。因此,会话或客户端范围内的任何内容或写入 cookie 的内容实际上都不会被存储,并且会在下次运行操作时丢失。
【讨论】:
唯一的区别是每次请求都会创建一个新的Session。 这很有趣,我在计划任务中使用从 Application.cfc 设置的应用程序范围变量得到了不一致的结果。基于此,我将重新调查那些我以前解决过的问题。 我也见过怪事,这就是为什么我倾向于让我的计划任务自成一体。我认为某些方法在无头浏览器请求时不会触发,例如 OnSessionStart() 或 OnRequestStart()。 我从来没有遇到过应用程序范围问题,但是(我认为)我只将 application.cfm 用于计划任务。以上是关于计划任务是不是以与网页相同的方式加载 Application.cfc?的主要内容,如果未能解决你的问题,请参考以下文章
如何以与 iPhoto 相同的方式订购 ALAssetsGroup
如何以与在 Windows 资源管理器中“发送给邮件收件人”相同的方式以编程方式发送电子邮件?