一、耗时长的任务:消耗时间长的任务,以睡眠两秒为例。
二、耗时短的任务:消耗时间短的任务,以分配耗时长的任务到指定进程为例。
三、任务分配进程:异步进程。将收到的长耗时任务 以对同一用户的多次操作要排队的原则 分配到任务进程。
补充:
1. hash:key + value,以key取值的圆环式增长实现hash圆环。
1.1 hash:key+1保存未被分发的任务,max_key记录当前最大的key,min_key记录当前未被分发出去的最小的key。
2.保存未完成的正在处理的任务。
3.任务处理完成后向分配任务进程发送已完成任务。
4.发放任务前检查未完成的任务,如果当前要发送的任务的user存在未被执行完的任务则当前的任务不可发放。
5.如果积压了大量未被发放的任务,怎么处理?
尚未做:模拟该方案的具体实现。
实践:耗时短的任务和耗时长的任务,布布扣,bubuko.com
原文:http://www.cnblogs.com/ribavnu/p/3701565.html