标签: clock-synchronization

将客户端javascript时钟与服务器日期同步的最佳方法

我有一个任务是在某个固定时区(MSK或MSD - 取决于当前日期)的HTML页面上显示数字时钟(具有分钟精度).我想避免依赖客户端系统时钟,因此需要与服务器进行一些同步.HTTP服务器在每个响应中发送Date头,因此我们可以向我们站点的任何URL发送AJAX GET或HEAD请求以获取服务器日期,计算与客户端日期的差异,并在使用setTimeout()更新时钟时使用它.还有其他问题:日光设置的时区切换,非常慢的连接的延迟计算.

对这项任务的任何想法都是最简单的方法吗?我更愿意在没有服务器端编程的情况下解决它.

javascript ajax timezone clock-synchronization

57
推荐指数
4
解决办法
6万
查看次数

使用服务器和系统时间在网页上计时?

我需要在网页上添加一个时钟.时钟需要与服务器同步,但我真的不想让它经常检查服务器,因为页面将在几台PC上全天候打开.有没有办法从服务器获取时间,然后使用系统时钟保持更新并每隔15分钟左右检查服务器以保持同步?

javascript vb.net ajax clock clock-synchronization

11
推荐指数
3
解决办法
3万
查看次数

如何跨多个节点在云(AWS,heroku等)中建立时钟同步?

我想在云中运行一个庞大的节点集群(AWS,Heroku,或者可能是自我管理的VMS),其时钟必须与预定义的容差同步.我正在寻找可能200毫秒的容差.这意味着如果我有250个节点,250个节点中任何一个节点之间的最大时钟差异不应超过200毫秒.我真的不关心世界的实际日期/时间.解决方案必须是容错的,并且不需要依赖任何一个系统的时钟精度 - 实际上,很可能没有一个时钟会非常准确.

要求足够强大,如果由于任何原因确定时钟同步对于任何特定节点不可靠,我宁愿由于时钟失步而从集群中丢弃节点 - 所以在任何可疑的故障时,我都会喜欢能够执行该节点的某种类型的受控关闭.

我喜欢使用类似NTP的东西,但根据NTP 已知问题twiki:

NTP不是为在虚拟机内部运行而设计的.它需要一个高分辨率的系统时钟,响应时间到时钟中断,并以高精度提供服务.没有已知的虚拟机能够满足这些要求.

虽然然后同样的twiki描述了解决这种情况的各种方法(例如在主机操作系统上运行ntp),但我不相信我能够使用AWS或者horoku来修改环境以符合解决方法.

即使我没有在VM中运行,一位拥有多年运行ntp经验的值得信赖的运营经理告诉我,由于每隔一段时间内本地时钟漂移不良,ntp可以并且会丢失同步(或者说得失时间).它不会经常发生,但确实会发生,并且随着您增加机器,您会增加发生这种情况的机会.AFAIK,检测你的距离需要停止ntpd,运行查询模式命令,然后重新启动它,并且可能需要很长时间才能得到答案.

总结一下 - 我需要一个时钟同步,其主要目标如下:

  • 在运营控制有限的VM中运行良好(即:"云服务提供商")
  • 所有参与者之间的集群中的时间容差约为200ms
  • 能够检测坏节点并以主动方式对其作出反应
  • 容错(无单点故障)
  • 可扩展(当你添加更多节点时,这个东西不能倒下 - 绝对避免n ^ 2)
  • 可以支持数百个节点
  • 任何节点都不应被视为具有优于任何其他节点的时间概念
  • 整个集群可以漂移(在合理范围内) - 只要它一致漂移即可

从描述来看,似乎伯克利算法可能是正确的选择,但是它已经实现了吗?

很高兴有:

  • 最小配置(节点自动注册参与) - 对于启动新节点很重要
  • HTML仪表板或(REST?)API,用于报告参与时钟同步的节点以及相对时间偏移量
  • 漂亮的图表?

cloud clock ntp clock-synchronization

11
推荐指数
1
解决办法
6689
查看次数

Java是否有现成的时钟同步解决方案?

我们有一个大型高性能软件系统,它由多个交互式Java进程(而不是EJB)组成.每个进程可以在同一台机器上,也可以在不同的机器上.

某些事件在一个进程中生成,然后以不同的方式传播到其他进程以进行进一步处理,依此类推.

出于基准测试目的,我们需要创建一个日志,记录每个事件何时通过"检查点",最终将这些日志组合起来,以获得每个事件如何通过系统传播的时间线以及延迟(当然,流程切换和IPC添加延迟,没关系).

当然,问题是时钟同步.所以这是我的问题:

1)如果所有进程都在同一台机器上,是否保证currentTimeMilis在通话时是准确的?ITP的错误是否存在一定的约束?

2)如果某些进程可能在不同的机器上,那么是否存在用于时钟同步的现成解决方案(也是免费或开源的)?我最好寻找可以绕过操作系统(Windows或Linux)并直接从Java工作的解决方案.我也非常理想地寻找能够以微秒精度运行的东西.我考虑过NTP,但我不确定它是否可以通过Java而不是通过操作系统获得,而且我不确定它的复杂性.

3)有没有办法确定在特定配置(或我最终使用的任何解决方案)中使用NTP的误差范围,以便我可以在计算延迟时给出误差幅度?

谢谢!

java distributed real-time clock-synchronization vector-clock

8
推荐指数
1
解决办法
3423
查看次数

如何同步两个Android手机时钟(最高毫秒)?或获得完全不同?

人!我以为将其包含在原始问题中,但没有。
投票时,您可以评论为什么要投票?
请使用它来使学习者完成他们的事情,并将他们的想法/问题更好地传达给他人。并非所有人都知道您的想法。谢谢

简而言之: 我需要将两个Android手机(彼此靠近不靠近;两种情况下放置)的时钟彼此同步,并且精度最高为几毫秒(最大10、20毫秒)。

  • 要么同步时钟
  • 或者得到一个与另一个的偏移量

我正在做什么: 我有一个正在开发的应用程序,用于测量不同的GSM网络统计信息。我正在使用电话管理器来获取三种状态(“摘机”,“空闲”,“振铃”)。电话A呼叫电话B。两个电话都在运行一个应用程序,该应用程序保存有关上述状态的时间戳。进行多次通话后,我将时间戳导出到数据文件中,并分析它们以获得不同的网络统计信息。

我的问题是什么: 我必须交叉匹配时间戳才能获取统计信息。现在的问题是,如果电话的时钟不同步,那么我将无法获得准确的统计信息(例如,在电话A发起呼叫后,使电话B处于振铃状态需要花费多少时间?)。

我尝试过的事情:到目前为止,我已经尝试将时钟与NTP,GPS或原子钟同步。我已经使用ClockSync(Android应用程序)从原子钟获取两个电话时钟的偏移量。问题在于此偏移量取决于从手机到服务器的网络数据包的RTT。当我两次检查偏移量时(连续两次点击刷新),我的差异最大为100毫秒。两部手机的偏移都可能导致长达200毫秒的误差,这对我来说是无法接受的。
所有其他同步应用程序/方法都存在相同的问题。

可能的前进方向:(我认为)。我可能会开发一个应用程序

  • 在电话A上加上时间戳
  • 通过蓝牙或WiFi(连接到同一路由器)将其传输到电话B,
  • B然后将该时间戳与其自己的时钟进行比较,计算出偏移量,
  • 然后我运行我的原始应用,进行实验,
  • 使用偏移量在处理数据之前更正时间戳

您的意见/建议:怎么做?并对最后一部分中描述的方法进行评论。

android clock-synchronization

7
推荐指数
0
解决办法
1199
查看次数

带有2个VHDL时钟的FIFO

我有一个vhdl赋值问题.我需要在500MHz的总线和另一个30MHz的总线之间创建一个FIFO缓冲区.

我设计了一个基本的FIFO缓冲区

输入:Data_in,Write_EN,CLK_500,Read_EN,CLK_30,FlushFIFO.

输出:Data_out,FULL,EMPTY.

此缓冲区使用2D数组设计:

type fifo_arr is array (0 to 63) of std_logic_vector(39 downto 0);
signal FIFO : fifo_arr := (others => (others => '0'));
Run Code Online (Sandbox Code Playgroud)

问题如下:我应该如何编写进程并在它们之间维护指针以进行同步?使用我尝试过的方法,代码将不会合成(错误:XST:827信号ptr无法合成)

有任何想法吗?

感谢致敬

clock vhdl fifo clock-synchronization

2
推荐指数
1
解决办法
7467
查看次数

2
推荐指数
1
解决办法
1万
查看次数

objc 中的时间更改通知(小时和分钟)

是否有在时间更改时获取通知的最佳实践?

我使用的是NSTimer每 0,002 秒检查一次时间是否更改(小时和分钟,而不是秒和毫秒),以保持应用程序中的标签每分钟与手机时钟同步。

我希望有更好的解决方案。

谢谢

time objective-c clock nstimer clock-synchronization

0
推荐指数
1
解决办法
890
查看次数