【问题标题】:Coldfusion set time out in .cfc page?Coldfusion 在 .cfc 页面中设置超时?
【发布时间】:2017-10-13 17:55:10
【问题描述】:

我有一个 .cfc 用于客户端和服务器代码之间的所有通信。这个cfc页面有大约10个不同的功能。每个函数都有不同的用途,我对 Select、Insert、Update 和 Delete 有查询。我想知道我是否应该在cfcomponent 标签内的.cfc 页面顶部设置timeout,或者这应该设置在每个函数中,还是我什至需要这个?在我们当前的系统中,我们有许多错误消息,例如:The request has exceeded the allowable time limit Tag: CFQUERY

我想防止在我的应用中出现任何类似的错误消息。这是我的 cfc 页面的示例:

<cfcomponent>
    <cfset currentDate = DateFormat(Now(),'mm/dd/yyyy')>
    <cfset currentTime = TimeFormat(Now(),'hh:mm tt')>

    <cfinvoke component="appEntry" method="getRecord" returnvariable="CHKAccess">
        <cfinvokeargument name="user" value="userdata"/>
        <cfinvokeargument name="app" value="myApp"/>
    </cfinvoke>

    <cfset adminAccess = false>
    <cfset userAccess = false>

    <cfif CHKAccess.RecordCount EQ 1>
        <cfif CHKAccess.pd_hfmAccess EQ 'A'>
            <cfset adminAccess = true>
        </cfif>
        <cfif CHKAccess.pd_hfmAccess EQ 'U'>
            <cfset userAccess = true>
        </cfif>
    </cfif>

    <cffunction name="getData" access="remote" output="true" returnformat="JSON">
        <cfargument name="keyVal" type="string" required="true">

        <cfset fnResults = structNew()>

        <cfif userAccess>
            <cfquery name="getRec" datasource="tes">
                SELECT some columns
                FROM Test
            </cfquery>

            <cfset fnResults.status = "200">
        <cfelse>
            <cfset fnResults.status = "400">
            <cfset fnResults.message = "Invalid access attempt.">
        </cfif>

        <cfreturn fnResults>
    </cffunction>

   <!--- More functions below --->
</cfcomponents>

如果有人建议最好的解决方法,请告诉我。谢谢。

【问题讨论】:

  • 这里有 Application.cfc 或 Application.cfm 吗?
  • @DanBracuk 它是 Application.cfc
  • 如果您想在每个页面上设置超时,请将代码写入 Application.cfc 的 onRequestStart 方法。但请记住,查询也有默认超时。如果您知道哪些较慢,请给它们更长的超时时间。

标签: coldfusion settimeout coldfusion-9 cfc cffunction


【解决方案1】:

您应该在包含long-running cfquery 的方法中设置requesttimeout

您不想只为一种方法“惩罚”所有方法。如果全部设置的话,你怎么知道哪个慢,哪个好,除非你不在乎?

【讨论】:

  • 这些 cfqueries 中的大多数都用于单个记录。但在某些情况下,他们可以提取超过 5 或 6k 的大量记录。
  • 我只是想知道这样的最佳做法是什么。
  • 关于,how do you know which one is slow and which one is okay,ColdFusion 管理员服务器监视器可以提供帮助。
  • 设置一个高于必要的超时时间究竟是如何惩罚任何事情的?
  • 这就是为什么我想知道一次超时是否可以解决所有问题...@DanBracuk
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 2012-12-15
  • 2017-02-01
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 2011-04-11
相关资源
最近更新 更多