我知道这是一个老问题了,但我一直回到这里,因为我需要一个类似的解决方案(仅对我来说是 10 秒的间隔),但这些答案都没有奏效。今天我终于找到了一种方法,我想我会发布,以防有人最终陷入类似的困境。
我发现我无法使用作为答案列出的 xml 修改方法,因为我们使用的是 CF 9.0.1,并且 xml 在我更改后几乎会立即恢复。
我尝试查看 cURL,发现虽然我可以使用 cURL 来调用进程,但我也无法让 windows 调度程序在不到一分钟的时间间隔内运行。然后,在寻找一种让 Windows 调度程序以更小的间隔运行的方法时(因为我认为此时我无法欺骗 CF),我偶然发现了关于专家交流的建议(我不记得关闭的 url现在手)。
基于此,我使用这个想法设置了一个测试:添加另一层程序,调用您要调度的程序。让这一层循环进入睡眠状态,并将其安排为超过一分钟的时间间隔。最终,我执行了一个 CF 计划任务,该任务每 2 分钟调用一次我的“调用者”,并且该“调用者”有一个每 X 秒休眠一次的循环。
下面是我用于测试的代码,格式化为回答提问者的 30 秒间隔。我利用一个侧面日志管理 cfc 以一种我可以保存和重新访问的方式输出调试。
计划每 2 分钟运行一次的测试文件:
<cfsetting requestTimeOut = "120000">
<cfscript>
/* Get starting count to keep track of overall running time */
Start = GetTickCount();
/* Set an ID for this process so I know */
thisProcess = CreateUUID();
counter = 0;
/* Set up a log-file-handler object.
* I will use the log lines to keep track of this process
* and whether or not it steps on itself.
* */
LogWriter = CreateObject('component','log.LogMgr').init('C:\Logs\');
LogFile = 'Test\30SecondTestLog';
LogWriter.WriteToLog('Information',LogFile,'#thisProcess# __ Started');
</cfscript>
<cftry>
<cfloop condition="Counter LT 4">
<!--- Output here is if you want to run it manually --->
<br /><cfdump var="#counter#">
<!--- Here you could put a cfhttp or similar trigger.
In my test I just used an update to a test DB table.
The catch here is that you don't want it to take too
long to get to the next steps, so you want to avoid
a long-running process that has to return something.
--->
<cfquery datasource="Marge" name="update">
Update test..testCount
Set CountField = CountField + 1
</cfquery>
<cfscript>
counter += 1;
LogWriter.WriteToLog('Information',LogFile,'#thisProcess# __ #counter# - Written');
/* Important part! Here is where the 30-second delay
* happens. However, we don't want to dally if this is
* the last time running it.
* */
if(counter NEQ 4){ sleep(30000); }
</cfscript>
</cfloop>
<!--- Time to output finishing details --->
<br />Done. <br />
<cfset End = GetTickCount()>
<cfdump var="#End - Start#">
<cfset LogWriter.WriteToLog('Information',LogFile,'#thisProcess# __ Done - Time: #End - Start#')>
<cfcatch type="any">
<cfset LogWriter.WriteToLog('Error',LogFile,'#thisProcess# __ #counter# - #cfcatch.message#')>
</cfcatch>
</cftry>
用于调试的日志记录 cfc:
<cfscript>
variables.LogHome = '';
</cfscript>
<cffunction name="init" raturntype="LogMgr">
<cfargument name="LogHome" type="string">
<cfset variables.LogHome = arguments.LogHome>
<cfreturn this>
</cffunction>
<!--- I wanted to use WriteLog, but that function name is already used in core CF --->
<cffunction name="WriteToLog" returntype="void" hint="writes to a log file.">
<cfargument name="LogType" type="string" hint="Based off cflog, expects severity level: Information, Warning, Error, or Fatal">
<cfargument name="LogPath" type="string" hint="Path and file from log root">
<cfargument name="LogString" type="string" hint="String to output in log">
<cfscript>
theFile = variables.LogHome & '\' & arguments.LogPath & '.log';
theString = arguments.LogType & chr(9) & DateFormat(Now(),'mm/dd/yyyy')& ' ' & TimeFormat(Now(),'HH:mm:ss');
theString &= ' ' & arguments.LogString;
</cfscript>
<cfif FileExists(theFile)>
<cffile action="append"
file="#theFile#"
output="#theString#"
addnewline="yes">
<cfelse>
<cffile action="write"
file="#theFile#"
output="#theString#"
addnewline="yes">
</cfif>
</cffunction>
</cfcomponent>
该测试在安排了十分钟的窗口时给出了这个日志输出:
信息 02/26/2013 15:29:00 F1E76BAE-C29A-208A-7B14339FD6B9B8D5 __ 开始信息 02/26/2013 15:29:00 F1E76BAE-C29A-208A-7B14339FD6B9B8D5 __ 1 - 书面信息 02/26 29:30 F1E76BAE-C29A-208A-7B14339FD6B9B8D5 __ 2 - 书面信息 2013 年 2 月 26 日 15:30:00 F1E76BAE-C29A-208A-7B14339FD6B9B8D5 __ 3 - 书面信息 2013 年 2 月 26 日 15:30 15:30 -208A-7B14339FD6B9B8D5 __ 4 - 书面信息02/26/2013 15:30:30 F1E76BAE-C29A-208A-7B14339FD6B9B8D5 __完成 - 时间:90123信息02/26/2013 15:31:00 f1f9b64d-c29a-208a-73ceaca04a02f544 __ 开始信息 02/26/2013 15:31:00 F1F9B64D-C29A-208A-73CEACA04A02F544 __ 1 - 书面信息 02/26/2013 15:31:30 F1F9B64D-C29A-208A-73CEACA04A02F544 __ 2 - 信息 2/6 /2013 15:32:00 F1F9B64D-C29A-208A-73CEACA04A02F544 __ 3 - 书面信息 02/26/2013 15:32:30 F1F9B64D-C29A-208A-73CEACA04A02F544 __ 4 - 书面信息 2013 年 2 月 26 日-F9A4 15:32:93 -73CEACA04A02F544 __ 完成 - 时间:90053 信息 02/26/2013 15:33:00 F20C0329-C29A-208A-79C8C0D4C1E1FDFF __ 开始信息 02/26/2013 15:33:00 F20C0329-C209A-208EFD-7信息 02/26/2013 15:33:30 F20C0329-C29A-208A-79C8C0D4C1E1FDFF __ 2 - 书面信息 02/26/2013 15:34:00 F20C0329-C29A-208A-79C8C0D4C1E1FDFF/6/02 - 书面信息15:34:30 F20C0329-C29A-208A-79C8C0D4C1E1FDFF __ 4 - 书面信息 02/26/2013 15:34:30 F20C0329-C29A-208A-79C8C0D4C1E1FDFF __ 完成 - 时间:90054 信息 02/25:2:00 F21E5001-C29A-208A-7702 __开始信息02/26/2013 15:35:00 F21E5001-C29A-208A-744291B2817D7702 __ 1 - 书面信息02/26/2013 15:35:30 F21E5001-C29A-208A-744291B2817D7702 __ 2 - 书面信息 02/26/2013 15:36:00 F21E5001-C29A-208A-744291B2817D7702 __ 3 - 书面信息 02/26/2013 15:36:30 F21E5001-C29A-208A-744291B2817D702 __4 信息/26/2013 15:36:30 F21E5001-C29A-208A-744291B2817D7702 __ 完成 - 时间:90029 信息 02/26/2013 15:37:00 F2309E2F-C29A-208A-7D6A5A2D1CA7D69EF __1/3 1:52/20 开始信息37:00 F2309E2F-C29A-208A-7D6A5A2D1CA7D9EF __ 1 - 书面信息 2013 年 2 月 26 日 15:37:30 F2309E2F-C29A-208A-7D6A5A2D1CA7D9EF __ 2 - 书面信息 2013 年 2 月 26 日 E92F-C8:23 -208A-7D6A5A2D1CA7D9EF __ 3 - 书面信息 2013 年 2 月 26 日 15:38:30 F2309E2F-C29A-208A-7D6A5A2D1CA7D9EF __ 4 - 书面信息 02/26/2013 15:38:30 F2309E2F-C29A-208A-7D6A5A2D1CA7D9EF __ 完成 - 时间:90013 信息 02/290/2013 ED34: -208A-7952DA25AF0C446D __ 开始信息 02/26/2013 15:39:00 F242ED34-C29A-208A-7952DA25AF0C446D __ 1 - 书面信息 02/26/2013 15:39:30 F242ED34-C29A-208A-7950C信息 02/26/2013 15:40:00 F242ED34-C29A-208A-7952DA25AF0C446D __ 3 - 书面信息 02/26/2013 15:40:30 F242ED34-C29A-208A-7952DA25AF0C446D __ 4/201 - 书面信息 02/ 15:40:30 F242ED34-C29A-208A-7952DA25AF0C446D __ 完成 - 时间:9004500 F242ED34-C29A-208A-7952DA25AF0C446D __启动信息02/26/2013 15:39:00 F242ED34-C29A-208A-7952DA25AF0C446D __ 1 - 书面信息02/26/2013 15:39:30 F242ED34-C29A-208A-7952DA25AF0C446D __ 2 - 书面信息 02/26/2013 15:40:00 F242ED34-C29A-208A-7952DA25AF0C446D __ 3 - 书面信息 02/26/2013 15:40:30 F242ED34-C29A-208A-7952DA25AF0C446D 书面信息 __ - 4 /26/2013 15:40:30 F242ED34-C29A-208A-7952DA25AF0C446D __ 完成 - 时间:9004500 F242ED34-C29A-208A-7952DA25AF0C446D __启动信息02/26/2013 15:39:00 F242ED34-C29A-208A-7952DA25AF0C446D __ 1 - 书面信息02/26/2013 15:39:30 F242ED34-C29A-208A-7952DA25AF0C446D __ 2 - 书面信息 02/26/2013 15:40:00 F242ED34-C29A-208A-7952DA25AF0C446D __ 3 - 书面信息 02/26/2013 15:40:30 F242ED34-C29A-208A-7952DA25AF0C446D 书面信息 __ - 4 /26/2013 15:40:30 F242ED34-C29A-208A-7952DA25AF0C446D __ 完成 - 时间:9004530 F242ED34-C29A-208A-7952DA25AF0C446D __ 4 - 书面信息 02/26/2013 15:40:30 F242ED34-C29A-208A-7952DA25AF0C446D __ 完成 - 时间:9004530 F242ED34-C29A-208A-7952DA25AF0C446D __ 4 - 书面信息 02/26/2013 15:40:30 F242ED34-C29A-208A-7952DA25AF0C446D __ 完成 - 时间:90045
我希望这可以帮助其他无法获得其他答案的人!