Coldfusion 即使浏览器关闭,CF模板是否仍继续运行?

Coldfusion 即使浏览器关闭,CF模板是否仍继续运行?,coldfusion,Coldfusion,如果这是一个明显的新手问题,我道歉,但我突然不确定答案 我正在运行几个大型任务,这些任务通过数据库记录运行。运行可能需要几个小时 如果“执行”了CF模板(基本上是在浏览器中访问其.cfm页面,而不是通过计划的任务),但浏览器在循环中关闭,模板是否会继续在服务器上运行,直到其完成?还是在窗口关闭时中止/退出模板?是,它将继续运行。当浏览器发出请求时,它向web服务器(IIS、Apache等)请求CF页面,然后web服务器向CF引擎请求,CF引擎开始处理模板。处理完成后,CF引擎将响应发送到web服

如果这是一个明显的新手问题,我道歉,但我突然不确定答案

我正在运行几个大型任务,这些任务通过
数据库记录运行。运行可能需要几个小时


如果“执行”了CF模板(基本上是在浏览器中访问其.cfm页面,而不是通过计划的任务),但浏览器在循环中关闭,模板是否会继续在服务器上运行,直到其完成?还是在窗口关闭时中止/退出模板?

是,它将继续运行。当浏览器发出请求时,它向web服务器(IIS、Apache等)请求CF页面,然后web服务器向CF引擎请求,CF引擎开始处理模板。处理完成后,CF引擎将响应发送到web服务器,web服务器将响应发送到浏览器。由此,您可以看到CF引擎不知道您关闭了浏览器。

它将继续运行Yes。(忽略“刷新”部分)FWIW,您可以自己测试它。使用循环模拟长时间运行的脚本。让它在每次迭代时记录到一个文件中,然后休眠50毫秒。在浏览器中加载脚本。然后在几秒钟后取消请求并检查日志。运行可能需要几个小时。你应该重新考虑你的方法。首先,确定循环是否真的有必要,通常不是。其次,如果是,则将工作拆分为X个记录的批,并将其作为一次性计划任务运行。每次都有任务流程X记录。然后再次调用它自己,直到没有更多的记录要处理。需要比循环多一点的工作,但更健壮。谢谢@MattBusche和Leigh-总是对我的问题非常有用和友好:)@volumeone-欢迎。由于标题中的确切问题已经被问到并得到了回答,我将投票以重复的方式结束这一问题。也就是说。。。看起来您真正的问题是如何处理一个大型的、可能运行时间很长的流程。我对当前流程中的循环感到好奇。循环通常是处理大量数据的最不理想的方法,并且通常(尽管不总是)可以重构为更快、更有效的基于集合的方法。可能需要打开一个关于这个特定问题的单独线程。