如何自动扩展工作任务?
我有一个应用程序,我想自动扩展工作任务的数量以适应要处理的项目的吞吐量(显然对工作人员的数量有最大限制)。
所有要处理的项目都通过一个点进行路由,从那里它们被分配到工作任务中(现在我找到具有最短队列的工作人员,并将项目排入队列)。
什么是一个好的模式或技术可以用来做出一些明智的决定,比如我应该让多少工人来处理这些物品?如果项目能够由较少的工人及时处理,则此逻辑需要包括关闭工人。
我意识到添加更多的工人不会无限扩展,因为最终其他资源会成为瓶颈,并且在某些时候增加更多的工人会比帮助更多。如果我能解释这一点,并决定减少工人的数量以自动找到“最佳位置”,那就太好了,但是在这一点上,如果我的系统可以增加工人的数量,我会很高兴的添加更多项目,然后在需要较少项目时减少数量。
我玩弄过的一个想法是测量一个项目在队列中的平均时间。如果这个平均时间大于几秒钟,我应该启动更多的工人(直到达到设定的最大限制)。如果平均时间少于 1 秒,我应该减少更多的工人(当然,直到只剩下一个)。
有人对解决此问题的最佳方法有任何建议吗?