预约如何实现平均分配

版权声明:本文为博主原创文章,未经允许也可以任意转载。http://huyouxiao.com https://blog.csdn.net/fudaxing/article/details/88955234

工作当中遇到一个问题,自己没有想清楚。写点文字记录下来。

场景:

  • 有一个签约中心,负责全国各地的人签约。
  • 每一个要签约的人,需求提前预约,确定签约的时间点。
  • 在预约的时候,虽然客户预约的是签约时间点。但服务端已经随机分配到具体的人上了。
  • 确认到具体的人头上,是因为签约中心的客服需要提前查看要签约人的资料,准备相关的问题。

带来的问题点:

  • 由于是随机分配到具体的人, 在任务量不饱和的情况下,导致任务分配不均。每个人接收到的工作量不同。

尝试解决的方法:

  • RoundRobin 分发

需要满足的点:

  1. 在未来40天之内,每个人分配的任务量是相对平均的。
  2. 在每一天之内,每个人分配的任务量是相对平均的。

其实只要做到第 2 点,自然做到第 1 点吗? 
不一定: 举个例子,你每天的工资比我多200块钱。一个月下来,你的工资就比我6000块了。这个差距就有点大了。但是世界上不存在绝对的事情,只要保证每天平均,也就相对平均了,采用此策略。

策略A是:

  • 先统计未来40天,每个人的工作量。按由少到多排序。
  • 再统计当天,每个人的工作梁,安装由少到多排序。
  • 根据上面两个值算一个权重,决定到底该分配给谁。

策略B(感觉不能用) 是:
RoundRobin分配: 将所有要参与分配的人的ID组成一个环。每一次分配后,指针指向下一个待分配元素。
优点:

  • 能够保证在长时间内平均分配
    缺点:
  • 不能保证每一天是平均分配的。很可能出现轮休的情况

猜你喜欢

转载自blog.csdn.net/fudaxing/article/details/88955234
今日推荐