在 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 之前,我不知道这是一回事。抱歉。
谢谢,
我需要根据不断变化的内部时钟执行计划任务。我知道 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 之前,我不知道这是一回事。抱歉。
谢谢,