【发布时间】:2014-07-11 04:39:09
【问题描述】:
我们有几千个目录,其中的页面每天访问量高达 50 万次。在每个页面点击结束时,我们将一些 CGI 变量插入到数据库中。如果提交了表单或执行了搜索,我们会将其中的一些信息插入到另一个数据库中。不需要从这些数据库插入中的每一个返回信息。这些插入发生在页面处理结束时。
我了解到,一旦启动“运行”线程,页面处理就会继续,并且不会等待响应。这似乎会加快页面的完成速度,因为它不等待页面中的查询运行。这是正确的吗?
像这样将这些数据库插入到他们自己的线程中是否有任何好处?
<cffunction
name="OnRequest"
access="public"
returntype="void"
output="true"
hint="Fires after pre page processing is complete.">
<cfargument name="RequestedContent" type="string" required="true" />
<!--- OUTPUT THE PAGE CONTENT --->
<cfinclude template="#ARGUMENTS.RequestedContent#" />
<cfscript>
thread
action="run"
name="Tracking" {
include "track1.cfm";
include "track2.cfm";
}
</cfscript>
<cfreturn />
</cffunction>
【问题讨论】:
-
好处是用户等待 ColdFusion 代码完成处理的时间减少了几毫秒。
-
设置线程
priority="low"可能会减轻其他人提到的潜在开销问题。
标签: coldfusion coldfusion-10 cfthread