防止少量并发重复处理工具类

package com.yasinyt.boss.common.utils;

import java.util.Map;
import java.util.WeakHashMap;
import org.apache.commons.lang3.StringUtils;

/**
 * @statement 防止重复提交工具类
 * @author TangLingYun
 * @data 2017年6月15日
 */
public class CheckRepetitionUtil {

    /**防止提交 暂存效验容器*/
    private static Map repetition = new WeakHashMap();

    /**效验是否重复提交*/
    public static synchronized boolean checkRepetition(String token){
        if (repetition.containsKey(token)) {
            return true;
        }else{
            repetition.put(token,StringUtils.EMPTY);
        }
        return false;
    }
    
    /**业务执行完毕移除当前提交状态*/
    public static void removeToken(String token){
        repetition.remove(token);
    }
}

使用进入方法之间 调用checkRepetition方法,方法后finally处理调用removeToken

有兴趣的同学可以实现改造使用AOP 注解切需要防止重复提交的方法。

大量并发请使用redis分布式锁,谢谢

你可能感兴趣的:(防止少量并发重复处理工具类)