需求描述
- 前5分钟,每10s 调用一次,后5分钟,每分钟调用一次(需求可继续拓展)
需求分析
- 方案一:采用两个for循环就能实现
- 优点:实现简单
- 缺点:代码容易出现冗余,后期不方便拓展
- 方案二:借助数据结构LinkedHashMap来存储,key是执行次数,value是该次数对应的休眠时间;前30次是10s,从第30次到第35次是1分钟;
- 优点:复用代码,代码简洁,后期方便拓展
代码实现
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
public class QueryFrequency {
/**
* key是执行次数,value是该次数对应的休眠时间
* 前30次是休眠10s,从第30次到第35次是休眠1分钟
*/
private final static Map<Integer, Long> FREQUENCY_MAP = Collections.unmodifiableMap(
new LinkedHashMap