美文网首页
防止少量并发重复处理工具类

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

作者: 唐岭云 | 来源:发表于2017-11-07 17:17 被阅读13次
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<String,String> repetition = new WeakHashMap<String,String>();

    /**效验是否重复提交*/
    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分布式锁,谢谢

相关文章

网友评论

      本文标题:防止少量并发重复处理工具类

      本文链接:https://www.haomeiwen.com/subject/sdbjmxtx.html