[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

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

TOP

概率 留给 体育老师去算

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

排队叫号!!!

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

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

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

TOP

TOP

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

TOP

回复 5# chouxia


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

需要注意的一点是:如果代码在最后一步删除文件之前异常退出,会导致后续所有的其他机器无法执行程序。
虽然发生这种情况的概率比较低,但还是准备好预案有备无患,也不给后续运维人员留坑。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher


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

TOP

返回列表