我正在写需要执行任务的Windows服务(即连接到中央服务器)每30天+ - 5天(它需要是随机的)。该服务将在2000 +客户端机器上运行,这样的随机性是为了平出来,使服务器不会过载。

什么是做到这一点的最好方法是什么?目前,我挑25之间的任意时间 - 35日以来,任务上次运行和使用

有没有人有更好的办法?有没有更好的办法?

有帮助吗?

解决方案

什么你已经有了听起来是一个不错的方式给我。您的 的可能要偏不是有点这样,如果25天后,这个时候它更可能在30天以上的下一次执行,如果你明白我的意思执行。

另一种替代方法是,你可以询问中央服务器为一个适当的“插槽” - 这样,它能够避免过载本身(假定所有的行为本身)

其他提示

我肯定会做什么乔恩建议在他的第二个段落,并移动到决定的时候旁边的服务器执行的逻辑。这样,您有有效的客户在你的控制,并且可以更改你的算法,而无需应用程序重新分发到2000+的机器。

服务器能告诉客户时,紧靠连接?如果是这样的服务器可以有一个在整个时间间隔均匀分布“规划的连接插槽”的池。服务器可以分发这些作为它喜欢,从而确保均匀的扩散。

似乎不够好。你可能想从列表中删除的每一天,他们被用来(保证每天在某些时候被用作通过随机选择一些可能永远不会选择!)。

在长期平整的顶部,你可以让服务器返回一个状态码,如果它是接近容量指示客户稍后重试。在这一点上你可能只是推迟了一个小时左右,而不是25-35天。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top