跨不同计算机的同步呼叫

时间:2014-08-18 11:41:13

标签: linux networking language-agnostic synchronization clock

我有三个Linux盒子,每个盒子都运行我的程序。

程序需要定期调用某个回调,并且每个调用必须在三个框中的完全相同的时间进行。除了通话之外,我不需要任何其他同步。

如果有帮助,这三个盒子的时钟由NTP同步(其中一个盒子是主盒子)。

有没有办法以高精度完成这项工作?优选非Linux特定的。为简单起见,即使之前的呼叫尚未完成,也必须每N ms调用一次回调。

1 个答案:

答案 0 :(得分:1)

如何提前发送执行函数的请求,包括应该执行函数的时间戳?接收应用程序将休眠/等待剩余时间(由于延迟而丢失一些时间),然后在您请求的精确时间戳执行该功能。

如果被调用函数本身花费的时间超过了你的间隔,你应该考虑使用线程。如果函数执行得很快但是结果的传输需要更长的时间,那么你应该使用类似select()的东西而不需要额外的线程。