即时查看处理cfthread中的查询,因为原始数据可能是数千请求。我看着使用cfthread ,所以我可以使它在后台进程。我知道有很多关于cfthread的信息,但我的头脑一直很困难。使用cfthread的最佳方法
这一切都归结为一些使用cfhttp的远程调用,以及它们是在单个线程中还是应该单独使用。
远程调用每次可能需要5-10秒,数据库更新非常小,只需更新处理它们的查询 上的真正假值即可。
<cfthread action="run" name="myThreadName" priority="high">
<!--- do a query --->
<cfloop query="myQuery">
<!--- do a remote call --->
<!--- process remote call response --->
<!--- update local dbtables to indicate process is complete --->
<!--- sleep using <cfset sleep(5000)> --->
</cfloop>
</cfthread>
或者,这是这个基本过程
<cfloop from="1" to="1000" index="idx">
<cfthread action="run" name="myThreadName" priority="high">
<!--- do a query --->
<!--- do a remote call --->
<!--- process remote call response --->
<!--- update local dbtables to indicate process is complete --->
<!--- sleep using <cfset sleep(5000)> --->
</cfthread>
</cfloop>
较为理想的基本使用cfthread的
我试着去寻找最佳的平衡,所以我不崩溃我的服务器,但我也能处理很多的这些要求从外部服务获取信息,但IM苦苦寻找这是最好的方向,或者如果有一个更好的过程一起处理远程请求对大众
在此先感谢
睡眠的目的是什么?此外,这将是一个预定的工作或用户在做什么? –
我把睡眠放在那里的原因是,如果它花费很长时间来完成它的任务,我认为它在短暂的时间内恢复之前会暂时休息一下。这样做的目的是在后台运行带有ajax ping的加载页面,以计算剩余时间。所以要回答你的问题,用户正在做的事情,但很好地呈现 – user125264
工作在我们有时压倒我们的服务器的地方,你的第二种方法似乎是两个弊端中的更大的一个。 –