我有一個允許用戶編輯客戶實體的GWT(+ GAE)web應用程序。當用戶開始編輯時,lockedByUser屬性在Customer實體上設置。當用戶完成編輯客戶時,lockedByUser屬性被清除。 沒有客戶實體可以同時由2個用戶修改。如果用戶試圖打開已由其他用戶打開的客戶屏幕,他會得到一個「用戶ABC正在修改客戶XYZ」。GWT:實體的實際解鎖
問題是,什麼是最實用和最健壯的方式來處理用戶強行關閉瀏覽器並因此lockedByUser屬性未被清除的情況。
我的第一個想法是在用戶端計時器,每隔30秒左右更新一次lockRefreshedTime。一個不同的用戶試圖修改客戶然後會查看lockRefreshedTime,如果刷新發生在35秒之前,那麼它會通過設置lockedByUser和更新lockRefreshedTime來獲取鎖。
感謝, 馬加什
OP要求一個_robust_方法。你提出的那個不是。 – 2012-03-24 14:34:49
我同意。你的回答令人印象深刻 – 2012-03-25 12:03:24