use*_*192 1 coldfusion scheduled-tasks cfadmin coldfusion-9
我正在运行一些代码作为计划任务,在CF管理员中设置.
有没有办法在代码中告诉代码作为计划任务运行,是否通过单击CF管理员计划任务区域中的运行图标运行,或者是否直接在浏览器中调用?
添加其他变量不起作用?
如果您询问是否可以通过单击coldfusion管理中的测试链接或按计划运行来识别手动运行的计划任务之间的差异,则可以启用计划任务的日志记录.只要用户运行任务,日志条目就会说[name of job] Executing because of user request at {timestamp}.如果它自然运行,日志条目会说[name of job] Executing at {timestamp}
我已经找到了一种通过代码判断的方法,但我找不到任何东西.这取决于调度程序的准确性,但您可以查看now()是否等于计划的时间.像(伪代码)的东西:
<!--- disclaimer: I've heard stories that cfschedule sometimes runs a little late --->
<cfset scheduleTime = "2:00 am">
<cfif cgi.HTTP_USER_AGENT eq "CFSCHEDULE" and timeFormat(now(), "h:mm tt") eq scheduleTime>
<!--- ran naturally --->
<cfelse>
<!--- ran by force --->
</cfif>
Run Code Online (Sandbox Code Playgroud)
如果您想知道您的计划任务是否按计划运行,或者您是否可以通过浏览器查看该文件cgi.HTTP_USER_AGENT.如果它由调度程序运行它将等于CFSCHEDULE否则它将等于客户端设置发送的任何内容.
也许, Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
或者,如果你有幸有一个机器人击中它,如下所示: Mozilla/5.0 (compatible; MJ12bot/v1.4.3; http://www.majestic12.co.uk/bot.php?+)
这是可能的欺骗客户端或服务器的请求,使用户的用户代理说CFSCHEDULE,但也不太可能.
如果您感兴趣,cfhttp的默认用户代理是"COLDFUSION".
| 归档时间: |
|
| 查看次数: |
1593 次 |
| 最近记录: |