我在 cfwheels 中遇到了一些并发问题。
我在 events/onrequeststart.cfm 中有一些代码,每次用户请求某些东西时都会执行这些代码。
测试用例:用户 A - 请求时间:10 秒用户 B - 请求时间:2 秒
如果用户 B 在用户 A 已经在处理请求时发出请求,则用户 B 的设置将进入用户 A,并且用户 A 将根据用户 B 的请求显示结果。
我尝试在 onrequeststart.cfm 上使用 cflock,但它似乎不起作用。我对 cfwheels 没有太多经验,所以我可能会尝试做一些逻辑上错误的事情。
这是混淆的代码的一部分。
<cfquery name="currentUser" datasource="#application.ds#">
select * from clientadmin where clientAdminid ='#session.clientadminid#'
</cfquery>
<cfquery name="currentClient" datasource="#application.ds#">
select * from clientBrands where clientbrandID ='#currentUser.ClientBrandID#'
</cfquery>
<cfset application.clientAdminSurveys = application.generalFunctions.clientSurveys(clientAdminID=session.clientAdminID, clientBrandID = currentUser.clientBrandID)>
<cfset application.AssociatedDoctors = application.generalFunctions.AssociatedDoctors(clientAdminID=session.clientAdminID, clientBrandID = currentUser.clientBrandID)>
所以,我想我的问题是,如何避免这种情况发生?