实践:耗时短的任务和耗时长的任务

一、耗时长的任务:消耗时间长的任务,以睡眠两秒为例。

二、耗时短的任务:消耗时间短的任务,以分配耗时长的任务到指定进程为例。

三、任务分配进程:异步进程。将收到的长耗时任务 以对同一用户的多次操作要排队的原则  分配到任务进程。

补充:

1.  hash:key + value,以key取值的圆环式增长实现hash圆环。

1.1 hash:key+1保存未被分发的任务,max_key记录当前最大的key,min_key记录当前未被分发出去的最小的key。

2.保存未完成的正在处理的任务。

3.任务处理完成后向分配任务进程发送已完成任务。

4.发放任务前检查未完成的任务,如果当前要发送的任务的user存在未被执行完的任务则当前的任务不可发放。

5.如果积压了大量未被发放的任务,怎么处理?

尚未做:模拟该方案的具体实现。

原文地址:https://www.cnblogs.com/ribavnu/p/3701565.html