2

我有一个奇怪的问题。

我希望能够独立于系统日期时间来测量时间跨度。

我们基本上有一个系统,其中包含一个中央服务器和多个本地服务器,它们不断与中央服务器同步。

中央服务器上的对象仅在指定的时间段内有效,例如 2009 年 10 月 1 日 09:00 -> 2009 年 10 月 1 日 17:00。

对象可能会在其有效时间段前几个月下载到本地服务器。

当一个对象被下载到本地服务器时,它上面有一个属性,它定义了它生效之前的时间长度。

目前我只是从这个时间跨度计算它将在本地服务器上生效的日期时间,然后在这个时候在本地激活对象。

然而,整个设计存在缺陷,因为有人可以将他们的时钟提前到他们的本地服务器上,以过早地激活他们下载的对象。

是否没有可以在本地服务器上使用的固定参考点来测量时间跨度,这是无法更改的???像“ticksSinceProcessorInstallation”属性或类似的东西???

我知道我可以想出一些解决方案来轮询中央服务器以不断获取那里的时间,但理想情况下,本地服务器应该能够在最初从中央服务器下载对象后一直保持离线状态。

如果有人有任何有用的建议,我将非常感激,

谢谢

4

1 回答 1

1

集中它。如果你不能用你自己的服务器集中它,请查询公共时间服务器;您的服务器管理员无法更改这些时间。

这里的基本原则是您无法控制用户定义的设置(时钟),所以如果它如此关键,它就不是一个可靠的测量点。任何衡量“自那时以来的持续时间”的东西都需要参考当前日期/时间,因此如果您必须考虑本地时间无效,您将不得不去询问另一台服务器以获得“真正的交易” .

于 2009-09-24T15:48:21.993 回答