我每天都面临这个问题.我有一个应用程序通过cfhhtp呼叫/请求从夜间计划作业中的各种应用程序中获取大量数据.这里的问题是它调用'扩展的范围列表'来捕获数据,不幸的是我们不能限制范围:(任务中设置的超时是9000秒(已经很高),但它仍然表示超时在cfhttp标签处
"请求已超过允许的时间限制Tag: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>
Run Code Online (Sandbox Code Playgroud)
不是:页面有一个"包含",它从中捕获范围.
我有一些大的查询和循环,这给了我一个excel输出.
我在excel一代的表现上遇到了麻烦.这需要很多时间.所以我想到了优化代码,为此我想知道我的代码块占用了多少时间?请问身体有什么帮助吗?
我只是想知道如何转储cfquery/cfloop/cfoutput的执行时间......?
我有一个内置于CF 9的应用程序.由于这是很久以前开发的,我现在正尝试实现一些安全功能.我只知道使用cfqueryparam来保护我已经在应用程序代码中实现的sql注入.但是我还能用什么来使我的应用程序更安全?我正在使用ColdFusion 9和Oracle数据库.
有人可以提供任何建议吗?