【发布时间】:2015-10-27 23:50:50
【问题描述】:
我想在我的应用程序中显示当前日期和时间,我想使用来自服务器的时间来防止用户更改他们自己机器上的系统时钟。我当前的设置是一个计时器,每秒查询一次服务器上的时间。我还没有实现这个,我担心性能,因为会有大约 50 个客户。如果每秒有 50 个客户端查询服务器时间,性能问题有多大?在 sql 服务器上?在 oracle 数据库上?
If timecon.State = ConnectionState.Closed Then timecon.Open()
timecmd = New SqlCommand("Select CONVERT(varchar(20), GETDATE(), 101) + ' ' + CONVERT(varchar(8), GETDATE(), 114)", timecon)
lblServerTime.Text = timecmd.ExecuteScalar
我在想我可以在表单加载时查询服务器时间,然后每秒增加一次。有一个计时器递增秒、分、小时、日、月、年。我该怎么做?
或者如果可能的话,如何在表单加载时将机器日期时间与服务器日期时间同步?比如查询服务器日期时间并使用它来更改客户端机器日期时间。
【问题讨论】:
-
为什么需要每秒重新同步?您是否担心客户端与服务器上的一秒钟更长(或更短)?第一次查询时,您可以获得差异并使用它来显示调整后的时间。 也许每隔 5 分钟左右重新查询一次以更新差异,我不希望它有太大变化
-
@Plutonix 系统会对时间敏感,客户端必须知道准确的时间。
-
在客户端使用 Timer 将如何获得准确的服务器时间?
-
然后 50 个客户每 5 分钟查询一次 - 每分钟 10 个 - 听起来这不是一个大的性能问题 - 据我们所知(- 问题中的模糊术语,答案中的模糊术语;- ) )
-
Google for
time synchronization software- 大约有 540 万条结果。这是通用软件,尽管您最终可以花时间自己动手,但麻烦多于其价值。我建议您购买旨在做您想做的事情的东西。祝你好运。
标签: sql-server vb.net oracle winforms