使用ColdFusion计算生命周期方法中的命中数

时间:2018-08-22 17:25:32

标签: coldfusion lifecycle application.cfc coldfusion-2016

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

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

Application.cfc:

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

somepage.cfm

Element COUNTER is undefined in APPLICATION.

我以为这可以用,但是我收到一条错误消息,说J_vals_t = numpy.transpose(J_vals) print(J_vals_t) 我缺少什么?我试图重新启动CF服务器服务和Web服务器,但是没有运气。

谢谢大家的帮助

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

事实证明,最简单的方法是在生命周期之外或在onApplicationStart内创建一个变量,然后在每个onRequestStart处递增该变量。之后,您可以执行所需的任何操作。我愚蠢的一件事是将<cfset Application.timer EQ 0/> <cfset Application.counter EQ 0/>放在了<cfreturn>标签之后。吸取了教训,不要做任何事,要研究一切哈哈。

谢谢大家