在 Coldfusion .cfc 文件中创建内部时钟以执行计划任务

Creating an internal clock within Coldfusion .cfc file to execute scheduled tasks

我需要根据不断变化的内部时钟执行计划任务。我知道 Javascript 可以做到这一点,但此解决方案需要托管在 Application.cfc 文件中。我试图在 OnRequestStart 函数中使用 "Now" 函数,但问题是如果我需要在午夜向某人发送一封电子邮件,但没有人在午夜发出请求,那么电子邮件将不会发送。我也尝试在 OnApplicationStart 函数中执行相同的功能,但理想情况下只会 运行 一次。我正在考虑在 OnApplicationStart 函数中使用 CreateTime 方法,但如果有意义的话,我将如何实时增加时间。我希望这更清楚实际需要什么。这是我试过的一些代码,但是我不太确定如何测试它是否真的有效。

<cffunction NAME="internalclock">
   <cfset today = #day(Now())#>
   <cfset  h = #hour(Now())#>
   <cfset  m = #minute(Now())#>
   <cfset  s = #second(Now())#>
   <cfset  m = #checktime(m)#>
   <cfset  s = #checktime(s)#>
   <cfsetting requestTimeOut = ".5">
</cffunction>
<cffunction  NAME="checktime">
   <cfif i LESS THAN 10 > i="0"+i
   <cfreturn i>
   </cfif>
</cffunction>

编辑: 我在访问 page2.cfc 文件中的变量时遇到一些问题。数据流动的方式是我在 Application.cfc 文件中初始化变量,在 page2.cfc 中重写相同的变量,并在 page3.cfm 中访问修改后的变量。 Page3.cfm 只是一个测试,以确保变量实际上已按预期定义和更新。我应该提到 page2.cfc 有一个计划任务,并且每分钟 运行s。这是一些示例代码:

Application.cfc
<CFFUNCTION NAME="OnApplicationStart">
  <cfset Application.currenttime = 0>
</CFFUNCTION>

page2.cfc
<CFFUNCTION NAME ="Counter">
  <cfset Application.currenttime = #Now()#>
</CFFUNCTION>

page3.cfm
<cfoutput>
  #Application.currenttime#
</cfoutput>

我得到的错误是当前时间变量显示为 0,或者如果我将输出更改为 Counter.currenttime,它表示它未定义。我确信我在做一些愚蠢的事情,但我会很感激你的帮助。

谢谢大家的帮助。

这实际上可以通过 Coldfusion Administrator 中的计划任务来完成。在实际制作此 post 之前,我不知道这是一回事。抱歉。

谢谢,