【发布时间】:2010-10-25 22:53:26
【问题描述】:
我目前正在重写我的 java 代码以在 Google App Engine 上运行它。由于我不能使用 Timer 来编程超时(不允许创建线程),我需要依靠系统时钟来标记超时开始的时间,以便我以后可以比较它,以确定是否发生了超时。
现在,由于 Google 应用服务器的分布式特性以及无法保持时钟同步,一些人(甚至在 Google 工资单上)建议开发者不要依赖系统时间。有人说系统时钟的偏差可以达到 10s 甚至更多。
1 秒的偏差对我的应用来说非常好,2 秒是可以容忍的,任何高于此的偏差都会给我和我的应用用户带来很大的痛苦,但 10 秒的偏差会使我的应用实际上无法使用。
我不知道从那以后是否有任何改变(我希望是的),但如果没有,那么除了发出一个新的单独请求以便其处理程序在超时(由于请求超时限制,不能超过 30 秒)以保持超时持续时间一致。
谢谢!
更具体地说:
我正在尝试开发一个扑克游戏服务器,但对于那些不熟悉在线扑克如何运作的人:我有一组玩家连接到一个游戏实例。在超时发生之前,每个玩家都有一定的时间来行动,以便下一个玩家可以行动。每个演员都有倒计时,每个客户都必须看到它。一次只能有一名玩家行动。我现在需要的超时时间是 10 秒和 20 秒。
【问题讨论】:
-
获取有关您正在尝试执行的操作的更多信息可能会有所帮助。例如,为什么您的应用需要如此精确的计时?
-
我有一组玩家附加到一个游戏实例。在超时发生之前,每个玩家都有一定的时间来行动,以便下一个玩家可以行动。每个演员都有倒计时,每个客户都必须看到它。一次只能有一名玩家行动。