gpt4 book ai didi

iis - ColdFusion/IIS/重定向限制?

转载 作者:行者123 更新时间:2023-12-02 17:39:22 26 4
gpt4 key购买 nike

我有一个 ColdFusion 脚本,它执行任务,然后使用 <cflocation> 重定向到自身tag,传入下一个要处理的ID。该脚本在恰好 51 行后停止工作。我认为这是代码中的一个错误,所以我将要处理的ID更新为52,它从ID 52运行到102并停止。同样,正好 51 行。

有谁知道 ColdFusion 对 cflocation 是否有一些限制标签?或者这可能是 IIS 正在做的事情?

当我使用 JavaScript 时 window.location方法,它工作正常,直到最后才停止 - 正如预期的那样。

更新 - 说明

脚本在处理每个 ID 后重定向到自身的原因是,ColdFusion 在请求完成之前不会将变量/内存释放回 JVM。因此,对于执行数百个复杂任务的请求,内存使用量会持续增长,直到请求正式完成。这会导致 JVM 中出现内存不足错误。据我了解,纠正此问题的最佳方法是将项目拆分为单独的请求,这样 ColdFusion 会将请求变量/内存释放回 JVM。因此,我们为什么要处理 1 个项目,然后重定向到 self 传递的下一个 ID 来处理。这是为了让 ColdFusion 将请求视为唯一并降低内存消耗。

最佳答案

这是一个“丑陋的黑客”,但是,也许您想尝试一下,以防找不到其他选择。

我能够通过从 ColdFusion 执行 curl 来测试和运行它,直到作为计划任务完成,因此它需要可用的 curl

<小时/>
<cfparam name="url.id" default="0" />
<cfset url.id = url.id + 1 />


<!--- // your task code --->

<cffile
action = "append"
file = "C:\inetpub\wwwroot\foo\redir-log.txt"
output = '#url.id#'>

<!--- // your task code --->


<!--- // condition to end the loop --->
<cfif (url.id lt 300)>

<cfset args = [
'http://127.0.0.1:53227/redir.cfm?id=#url.id#'
] />

<cfexecute
name="curl"
arguments="#args#"
variable="output"
errorVariable="error"
timeout="0"
/>

<cfdump var="#output#" />
<hr />

<cfdump var="#error#" />
<hr />

</cfif>
<小时/>

关于iis - ColdFusion/IIS/重定向限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51250351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com