1

我在Google App Engine上構建了一個應用程序,該應用程序使用數據存儲來存儲有關服務器當前狀態的信息。當Android設備查詢服務器時,servlet會從數據存儲中獲取一個實體,對其進行修改,然後將其放回到數據存儲中以更新數據存儲條目。阻止併發訪問App Engine數據存儲

但是,有時在Servlet的一個實例已從數據存儲中獲取數據時,servlet的另一個實例在第一個實例將更新的數據放回之前會執行相同操作。這會在我的應用程序中導致同步問題。

有沒有什麼辦法可以「鎖定」數據存儲區,以便在釋放鎖之前沒有任何操作?

謝謝。

回答

6

Transactions是你所追求的。

儘管仔細閱讀文檔:您在交易中可以做什麼有嚴格的限制。具體而言,您只能在單個實體組中查詢 - 也就是具有相同祖先的一組實體。