Board logo

标题: [其他] 【已解决】BAT随机延迟程序被同时启动的概率学公式要怎么列? [打印本页]

作者: chouxia    时间: 2019-2-22 13:44     标题: 【已解决】BAT随机延迟程序被同时启动的概率学公式要怎么列?

同时开机N台机器,进系统后启动一个bat。bat随机延迟M秒后启动一个程序

N台机器中多于1台机器启动这个程序的概率有多大?
呃,老实说吧,我数学体育老师教的。哪位给个公式,我好测算下这个见鬼的程序被同时启动的概率。
我的目标是在N和M值尽量小的情况下得到一个最小同时启动概率。
或者一个靠谱的随机延迟避免同时启动的方案
作者: cfwyy77_bat    时间: 2019-2-22 14:26

非严格说明,仅供参考:
假设随机最大值M秒,那么1,2,3,....M 出现的概率应该是1/M
那么两台机器同时启动的概率是  (1/M)  * (1/M)
三台机器同时启动的概率是 (1/M)  * (1/M)* (1/M)
....
作者: search_Sudoku    时间: 2019-2-22 15:00

概率 留给 体育老师去算

银行柜台窗口 只有一个 柜员, 无法 并行 方式服务, 多个客户差不多同时到达柜台, 怎么办?

排队叫号!!!

只要有串行线路存在, 就没有绝对的 同时, 必然存在先后, 先来先处理, 后来先等着. 建立 排队 通讯机制, 一个客户服务完了, 叫下一个

如果你不能建立排队通讯叫号这些, 那就考虑以体育方式解决, 同时开机同时运行一个程序, 那是绝对不能允许的, 必须人工亲力亲为才能开机, 才能启动程序

如何用最短的时间以人工手动方式把多台机器开机并运行某程序, 这个题目还是留给体育老师, 如果一个体育老师难以解决, 可以考虑让全校的体育老师并行处理(好象还要考虑通讯)
作者: 523066680    时间: 2019-2-22 16:46

回复 3# search_Sudoku

    量子启动。看视频:
https://www.zhihu.com/question/61196037/answer/600638871

https://link.zhihu.com/?target=h ... 1080489743422341120
作者: chouxia    时间: 2019-2-24 17:03

没那么大机器数量,所以选用最简单的选举法。思路类似同轴电缆的通讯方式。
bat启动后随机延迟20000毫秒。准备启动程序的机器在共享盘判断特定文件是否存在,不存在写入文件,校验errorlevel后启动程序,程序启动完成后再次校验errorlevel,没问题后删除文件,bat退出。如果检测到文件,继续随机延迟20000毫秒并继续检测文件。
作者: Batcher    时间: 2019-2-25 09:52

回复 5# chouxia


这种 filelock 的方式简单易行,在可靠性要求不是特别高的情况下可以采用。

需要注意的一点是:如果代码在最后一步删除文件之前异常退出,会导致后续所有的其他机器无法执行程序。
虽然发生这种情况的概率比较低,但还是准备好预案有备无患,也不给后续运维人员留坑。
作者: chouxia    时间: 2019-2-26 14:39

回复 6# Batcher


    只要加入这个特定文件的最后修改时间判断就好。超出多长时间的这个文件会删除,然后重新选举




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2