package com.jxy.common.core.annotation;

import com.jxy.common.core.constant.CacheConstants;
import com.jxy.common.core.constant.Constants;
import com.jxy.common.core.enums.LimitType;

import java.lang.annotation.*;

/**
 * @Description TODO
 * @Date 2022/11/30 17:28
 * @Author 杜懿
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimiter
{
    // 限流key
    public String key() default CacheConstants.RATE_LIMIT_KEY;

    // 限流时间,单位秒
    public int time() default 30;

    // 限流次数
    public int count() default 30;

    // 限流类型
    public LimitType limitType() default LimitType.DEFAULT;
}
