我在cfwheels中遇到了一些併發問題。onRequestStart CFWheels
我對事件的一些代碼/ 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)>
所以,我想我的問題是,如何避免這種情況發生?
只是爲了確保我明白你什麼建議,從onRequestStart更改代碼的位置onSessionStart,也從應用程序中更改變量的名稱。*會話。*? – Geo
沒有看到更大的代碼,我不能太具體;請記住,onSessionStart將啓動匿名會話 - 所以用戶第一次進入該網站(在他們登錄之前)。如果此信息用於已驗證的用戶,則您希望在登錄時將該用戶的特定數據複製到會話範圍中。這可能是因爲您有應用程序範圍中的數據副本,緩存等 - 這很好;但將應用程序級別的數據視爲永遠不會/很少更改的東西。看看http://github.com/neokoenig/RoomBooking的例子。 – Neokoenig