2014-08-29 46 views
0

上午我們已經有了www.muchbetteradventures.com/ski/enquire/奇怪的形式緩存行爲在位有錯誤虧損

(而且,到哪裏尋求幫助 - 在這裏合適!? )

會發生什麼事..

大約1%的時候有人填寫表格,提交命中,一些領域提交的內容是由不同的機器上的先前提交的條目由不同的人所取代(主要是大文本區域 - 至少,這是最容易發現的,因爲很難完全複製別人的輸入)

在調試這件事情時,我一直在通過Raven/Sentry在前臺訪問我們的服務器之前以及在後臺進行任何進一步處理之前記錄表單內容。這兩種方式總是顯示實際上由基礎過程保存到數據庫的相同內容 - 例如,重複的內容。

我們已經問了一些用戶他們的觀點是怎麼回事,他們告訴我們他們已經用自己的內容填寫了一個空白表格。而且他們還沒有看到任何人在任何時候都會隱藏內容。

會發生什麼情況?下游緩存的某處是我能想到的。

任何幫助將不勝感激..!

回答

0

聽起來像之一:

  • 競爭條件
    • 你預先生成對象的主鍵之前的數據實際上被保存在數據庫中?如果是這樣,您可能會發生PK衝突,並且兩個表單POST最終會更新相同的數據庫行。
  • 非線程安全的代碼
    • 你在一個線程環境中部署?如果是的話,你的意見是建立在一個線程安全的莊園? Django的基於類的視圖是開箱即用的線程安全的,但如果你有其他驅動視圖機制的東西(第三方庫等),它可能是一個線程問題。
+0

的觀點是節省正是它變得發 - (通過JavaScript)記錄表單內容提交前,後提交(「後」視圖方法的第一個動作是日誌)顯示這一點。客戶發佈重複數據。有時候,表單會預先填充會話數據 - 所以如果會話有碰撞或被劫持的可能(如果我們忽略用戶說他們填寫了表單..) – 2014-08-31 15:26:09