0
ServletA:GAE交易異常
- 在查詢檢索一組對象(2000年左右),然後運行一個權重函數選擇一個對象,並對其進行更新。
- 全部是trasaction內,所以如果對象發生了變化 它會得到一個異常
ServletB:
- 每個對象是由機器人客戶每15秒更新
因此,已在ServletA中檢索到的記錄集每2000/15 = 133毫秒正在更新。
它會不會中斷更新對象嗎?
ServletA:GAE交易異常
ServletB:
因此,已在ServletA中檢索到的記錄集每2000/15 = 133毫秒正在更新。
它會不會中斷更新對象嗎?
如果在從數據存儲中檢索到所選「最佳」房間之前,ServletA將只會拋出一個異常,然後纔會保留它。
如果其他1999個實體中的任何實體都被修改了,那麼根本沒有關係,因爲你根本沒有修改它們。
這是個好消息。非常感謝傑森! – bach 2010-04-02 01:27:26
我可能會將對象拆分爲兩個對象,一個通過servletA更改,另一個通過servletB更改,並且僅在servletA中擁有事務...我希望GAE可以定義只能在一個VM上運行的應用程序 - 並非全部應用是全球性的! – bach 2010-04-01 12:31:33
您是否預料到這種情況會發生在您的真實應用程序中?也許你應該考慮DoS防護:http://code.google.com/appengine/docs/java/config/dos.html – 2010-04-01 12:50:06
來吧,每15秒從機器人客戶端獲取更新對許多應用程序來說都是微不足道的(財務例如) – bach 2010-04-01 12:59:00