2013-02-07 135 views
1

有没有办法检测脚本是否由计划任务运行。如何检测脚本是否通过计划任务运行

我有一个脚本,它会抛出一个ClientAbortException,因为我使用的是cfflush。 我需要检测脚本是否通过计划任务运行,以便脚本可以成功运行。

+1

这是一个重复的qustion http://stackoverflow.com/questions/13977831/how-do-i-determine-if-a-scheduled-task-was-ran-automatically-or-ran-in-a-浏览器/ 13978558#13978558 – Travis

+0

下面是关于错误的东西 - http://stackoverflow.com/questions/12141659/connection-reset-by-peer-socket-write-error-cfcontent-on-coldfusion-10。似乎很奇怪,因为它似乎意味着任务调度程序在请求完成之后但完成之前正在终止与服务器的连接。 – Barry

+0

您也可以考虑使用cgi.remote_addr来确定它是否为计划任务。它包含发出请求的远程主机的IP地址。对于计划任务,它将是您服务器的IP地址。 – Barry

回答

3

看来,您可以通过CGI.HTTP_USER_AGENT检查:

<cfif CGI.HTTP_USER_AGENT NEQ "CFSCHEDULE"> 
    <cfflush> 
</cfif> 
1

这是一个重复的问题,如特拉维斯说,但另一种答案是,你可以URL参数添加到计划任务类似汽车? =这将允许您检查url作用域以确定它的运行方式。

+0

,如果你愿意,也可以绕过浏览器中的cfflush。 – Travis

相关问题