请求已超过允许的时间限制Tag:cfhttp

时间:2014-03-19 09:19:45

标签: coldfusion cfhttp

我每天都要面对这个问题。我有一个应用程序,它通过cfhhtp呼叫/请求从夜间计划作业中的各种应用程序中获取大量数据。 这里的问题是它调用'扩展的范围列表'来捕获数据,不幸的是我们不能限制范围:( 任务中设置的超时为9000秒(已经非常高),但仍然显示cfhttp标记处的超时

  

“请求已超过允许的时间限制标记:cfhttp”。

我不知道cfhttp是如何工作的,但应该有一些解决方案,如果它长时间捕获数据并从各种范围捕获,它不应该抛出错误并继续工作直到最后一个请求。

<cfset dynVarName = "funded" & bizforShort>
<cfif structKeyExists(variables,dynVarName)>
    <cfset howManyCustomScopes = listLen(structkeylist(variables[dynVarName],"|" ),"|" )>
    <cfmodule template="#Request.Library.CustomTags.VirtualPath#Scheduler_LogDetail.cfm"
                  Step="Funded Level Cache" Detail="Custom Scopes to be cached: #howManyCustomScopes#"
                  LogData=""></cfmodule>
    <cfloop collection="#variables[dynVarName]#" item="t">
        <cfset tempurl = variables[dynVarName][t]["url"]>
        <cfset tempurl = tempurl & "&retainCache=1">
        <cfoutput>
            <cfhttp url="#tempurl#" method="GET" resolveurl="false" timeout="9000">
            #tempurl#<br>
            <cfset scopesCachedCounter = scopesCachedCounter + 1>
            <cfmodule template="#Request.Library.CustomTags.VirtualPath#Scheduler_LogDetail.cfm" Step="Funded Scopes Cache" Detail="#scopesCachedCounter#.- #t#" LogData="#tempurl#"></cfmodule>
        </cfoutput>
    </cfloop>
</cfif>

不是:该页面有一个“包含”,从中捕获范围。

1 个答案:

答案 0 :(得分:1)

在页面顶部,添加以下cfsetting代码,为requestTimeOut分配足够大的值。这最终确定了整个页面的超时时间,只要它们的累积执行时间不超过此值,就允许任何标记占用所需的时间。

<cfsetting requestTimeOut = "9000" />