我目前正在重寫我的java代碼以在Google App Engine上運行它。由於我無法使用Timer進行編程超時(不允許創建線程),因此我需要依靠系統時鐘來標記超時啓動的時間,以便稍後進行比較以確定超時是否已發生。在Google App Engine中以1秒的精度跟蹤時間
現在,由於Google應用服務器的分佈式特性,幾個人(甚至在Google工資單上)建議開發人員不要依賴系統時間,也不能保持其時鐘同步。有人說系統時鐘的偏差可能高達10秒甚至更多。
1s偏差對我的應用非常有用,2秒可以容忍,任何高於此值的數據都會對我和我的應用用戶造成很大的傷害,但10秒的差異會使我的應用無法使用。
我不知道自那時以來是否有什麼好轉(我希望是),但如果沒有,那麼除了拍攝新的單獨請求以外,我的選擇是什麼,以便它的處理程序睡眠的持續時間超時(由於請求超時限制不能超過30秒)以保持超時持續時間一致。
謝謝!
更具體:
我試圖開發一種撲克遊戲服務器,但對於那些誰不熟悉撲克在線如何工作的:我有一組玩家連接到1個遊戲實例。 Evey球員在超時發生之前有一定的時間採取行動,以便下一名球員可以採取行動。每個演員都有倒計時,每個客戶都必須看到它。一次只能有一名球員參賽。我需要的超時時間現在是10秒和20秒。
獲得有關您想要做什麼的更多信息可能會有幫助。例如,爲什麼你需要在你的應用程序中準確定時? – 2010-10-26 00:46:01
我有一組玩家連接到1個遊戲實例。 Evey球員在超時發生之前有一定的時間採取行動,以便下一名球員可以採取行動。每個演員都有倒計時,每個客戶都必須看到它。一次只能有一名球員參賽。 – jaz 2010-10-26 07:29:32