使用循环算法调度负载?
我需要编写一个循环算法来安排负载到 n 个端点?
因此,如果我有服务器 A、B 和 C,
我想确保对收到的每个请求进行循环处理。我如何在 C# 中执行此操作?
I need to write a round robin algorithm to schedule load to n endpoints?
So if I have servers A, B and C
I wanted to make sure to round-robin through them for each request I get. How do I do this in C#?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果通过列表或数组访问端点,则只需以循环方式增加索引:
If your endpoints are accessed through a List or Array, you only need to increment an index in a circular fashion:
与 ebpower 的想法相同,但关注下一项是什么,而不是下一项的索引是什么。
Same idea as ebpower, but focussing on what is the next item rather than what is the index of the next item.
仅供记录,循环的定义:
http://en.wikipedia.org/wiki/Round -robin_scheduling
只需使用队列。从顶部取下一个,使用它然后放回去。这确保了最近使用的将始终是最后一个被拾取的。
队列类的链接:
http://msdn.microsoft.com/en-us /library/7977ey2c.aspx
Just for the record, definition of round robin:
http://en.wikipedia.org/wiki/Round-robin_scheduling
Just use a queue. Take one off of the top, use it and put it back. This ensures that the most recent one used will always be the last one to be picked up.
Link to the queue class:
http://msdn.microsoft.com/en-us/library/7977ey2c.aspx