package com.yxcheng.token.common.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * redis分布式限流算法注解，对整个集群进行总量限流，超过限流阈值的请求会直接中断，<p>
 * 返回标准限流异常<b>LimitException</b>。<p>
 * <b>参数：count</b> 为整个集群每秒限流总量，超过的请求会直接返回fase<p>
 * <b>参数：unitTime</b> 为限流单位，默认1秒，即每秒限流个数<p>
 * 
 * @author wuyuegang
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface RedisLimit
{
    /**
     * 集群限流数量，默认10。所有客户端共享这个数值
     * 
     * @return
     */
    int count() default 10;
    
    /**
     * 限流时间单位，默认1秒
     * 
     * @return
     */
    long unitTime() default 1;
}
