Coldfusion 什么时候应该使用cfthread?
请给出一个需要线程的简单场景好吗? 非常感谢。Coldfusion 什么时候应该使用cfthread?,coldfusion,coldfusion-8,coldfusion-9,Coldfusion,Coldfusion 8,Coldfusion 9,请给出一个需要线程的简单场景好吗? 非常感谢。 Nich我在一种情况下使用了它,在用户执行某些报告之前,我们需要启动一些后端数据处理以将数据制成表格。因此,登录后,我们将使用cfthread启动一个任务,为用户构建仓库数据。工作得很好 因此,可以将cfthread视为按需执行异步任务的一种方式。在正确的情况下非常有用 如果与主请求处理代码并行执行某些代码有意义,请使用cfthread 示例:假设您正在上载一个文件目录,您需要对每个文件执行相同的处理,可能是为了将内容保存到数据库中。然后可以使用c
Nich我在一种情况下使用了它,在用户执行某些报告之前,我们需要启动一些后端数据处理以将数据制成表格。因此,登录后,我们将使用cfthread启动一个任务,为用户构建仓库数据。工作得很好
因此,可以将cfthread视为按需执行异步任务的一种方式。在正确的情况下非常有用 如果与主请求处理代码并行执行某些代码有意义,请使用
cfthread
示例:假设您正在上载一个文件目录,您需要对每个文件执行相同的处理,可能是为了将内容保存到数据库中。然后可以使用cfthread
异步运行每个文件上的处理。考虑这个伪代码:
<cfdirectory directory="x" action="read" name="allFiles" />
<cfloop query="allFiles">
<cfthread action="run" name="thread-#allFiles.name#>
<!--- Read your file in and do processing --->
</cfthread>
</cfloop>
#变量.消息#
检查上面的编码。有点清楚。我在两种情况下使用了cfthread
如上所述,当我想做异步处理,而我的主线程正在做其他事情时,我使用了它。例如,我使用它来加载RSS数据,同时生成页面的其余部分。由于对RSS源的调用需要几秒钟,因此我在开始任何其他处理之前启动了一个线程。它在我查询、绘制布局等时运行。然后我加入线程并显示RSS数据。这使我不必在RSS填充时暂停页面加载
我使用的第二种方法是按需替代使用调度程序。我们正在生成复杂的PDF文档。生成它们的人不需要立即使用它们,因此我们创建了一个未连接的线程来处理PDF,而不是在生成文档时让用户卡住。然后,我们限制在任何点上处理的cfthreads的数量。现在,不管负载如何,cfthreads都将简单地排队,并在资源可用时进行处理。这并不能回答问题。用户想知道什么时候需要线程(即:用例),而不是如何使用它
<!--- store value into message varaible --->
<cfset variables.message = "It's orginal value.">
<!--- create new thread --->
<cfthread name="ThreadOne">
<!--- overwrite new value into existing variable. --->
<cfset variables.message = "It comes from thread.">
</cfthread>
<!--- join thread --->
<!---
If we leave this join, the code within thread will execute but won't display the value.
--->
<cfthread action="join" name="ThreadOne" />
<!--- Output --->
<cfoutput>#variables.message#</cfoutput>