【问题标题】:How to detect if a script is running via a scheduled task如何通过计划任务检测脚本是否正在运行
【发布时间】:2013-02-07 08:26:26
【问题描述】:

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

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

【问题讨论】:

  • 这是一个重复的问题stackoverflow.com/questions/13977831/…
  • 这里有一些关于错误的内容 - stackoverflow.com/questions/12141659/…。看起来很奇怪,因为它似乎暗示任务调度程序在发出请求之后但在完成之前终止与服务器的连接。
  • 你也可以考虑使用 cgi.remote_addr 来确定它是否是一个计划任务。它包含发出请求的远程主机的 IP 地址。对于计划任务,它将是您服务器的 IP 地址。
  • @barry 这里的缺点是当您在多个服务器上部署应用程序的多个实例时,您需要在某处配置 IP 地址以检查 CGI.REMOTE_ADDR 是否相等。顺便说一句,我发现了一个关于错误的错误报告:issues.jboss.org/browse/RAILO-727

标签: coldfusion scheduled-tasks railo cfml


【解决方案1】:

看来你可以通过CGI.HTTP_USER_AGENT查看:

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

【讨论】:

    【解决方案2】:

    正如 Travis 所说,这是一个重复的问题,但另一个答案是您可以向计划任务添加一个 url 参数,例如 ?auto= 这将允许您检查 url 范围以确定它是如何运行的。

    【讨论】:

    • 如果你愿意,这也可以让你绕过浏览器中的 cfflush。
    猜你喜欢
    • 2013-08-18
    • 2015-01-10
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    相关资源
    最近更新 更多