我需要显示一些关于“OnRequestStart”函数被调用多少次的分析,或者更确切地说是包含在 .cfc 文件中的我们内部 API 上每小时的点击次数。最好通过生命周期法;然而,计数器必须在生命周期之外继续运行。我知道这可以用其他语言轻松完成,但我是 ColdFusion 的新手,并且一直在尝试通读文档以查看是否可以使用某种形式的生命周期方法来实现这一点。如果有我遗漏的任何类型的文档(我已经尝试在一周内学习 cf、cfdocs、adobe 文档),但实际上并没有太多。这可能不是 100% 清楚,但如果需要澄清,我很乐意提供帮助。

编辑:我认为最好在 onApplicationStart 中设置一个应用程序变量,并在 onRequest start 内将计数器变量递增地加 1。这是我的示例代码:

应用程序.cfc:

<CFFUNCTION NAME="OnApplicationStart" ACCESS="PUBLIC" RETURNTYPE="BOOLEAN">
   <cfset Application.timer EQ 0/>
   <cfset Application.counter EQ 0/>
</CFFUNCTION>

somepage.cfm
<tr>
    <cfoutput> #Application.counter#</cfoutput>
</tr>

我认为这会奏效,但我收到一条错误消息,说 Element COUNTER is undefined in APPLICATION. 是我遗漏了什么吗?我尝试重新启动 CF 服务器服务和 Web 服务器,但没有成功。

谢谢你们每一个人的帮助

最佳答案

将其写入应用范围,在 onRequestStart() 中,包含以下代码:

lock scope="application" type="exclusive" timeout=1 throwontimeout=false {
    if (!application.keyExists("reqCount") {
        application.reqCount= 0;
    }
    application.reqCount++;
}

然后你可以在任何需要的地方使用它。

关于coldfusion - 使用 ColdFusion 计算生命周期方法中的命中数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51972180/

10-13 03:34