【问题标题】:Start a program (c# and mysql Database) simultaneous on several computers在多台计算机上同时启动一个程序(c# 和 mysql 数据库)
【发布时间】:2017-11-23 14:42:58
【问题描述】:

我必须同时在多台计算机上启动一个程序(毫秒内)。 该程序读取并写入mysql数据库。为了确保同时启动,我考虑了 sql 依赖,但它也适用于 mysql 吗?还有其他方法可以保证同步启动吗?

这是一个实验室内的项目。所以它只是一个小型网络。

问候

【问题讨论】:

  • 你不能保证在多台计算机上同步启动(在毫秒内)到很多变量,比如使用的硬件、当前的 cpu 负载和当前的磁盘 i/o 负载。
  • 你是如何启动程序的??
  • 想想如果其中一台计算机被大象击中,就再也没有开始了
  • 为什么您希望多台计算机同时启动?如果你想对某事进行压力测试,那不是这样做的。
  • SSD 和无 SSD 的加载时间可能会有所不同,这取决于 CPU 速度、RAM 速度、计算机使用情况,甚至在 Windows 更新启动的极少数情况下也会有所不同!

标签: c# mysql


【解决方案1】:

将操作系统时钟与 NTP 同步并安排启动时间(一旦加载)以确保实时同步。

以时钟时间开始运行您的程序,并设置一些触发器来执行它。

我在分布式系统领域工作多年,是最常见的解决方案。

当今时钟的精度从纳秒(10^-6 秒)开始,并且有高精度时钟(10^-7 到 10^-8 秒)

您可以阅读有关时钟here 和时间同步与替代品here 的讨论

【讨论】:

  • 不,即使加载可执行文件到内存中也可能不同,所以真正的开始时间不同
  • 你忘了提到操作系统时钟永远不准确。除非你安装了原子钟
  • 这也是假设调度程序具有毫秒精度,我怀疑它有。
  • @DavidG 当然有,时钟比毫秒要完美得多。 Rufo 先生,您在程序开始之前同步了开始,而不是负载。我已经做了几十次,运行了数千台设备,完美同步。
  • 时钟是,但调度器是?你能保证它会在你需要的精确毫秒内启动吗?
猜你喜欢
  • 2014-08-24
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多