All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.tomato.core.Idempotent Maven / Gradle / Ivy

There is a newer version: 1.0.11-RELEASE
Show newest version
package com.github.tomato.core;

import java.util.function.Supplier;

/**
 * @author liuxin
 * 2019-12-29 22:30
 */
public interface Idempotent {

    /**
     * 滑动窗口
     *
     * @param uniqueCode  唯一码
     * @param millisecond 控制时间
     * @return Boolean
     */
    boolean idempotent(String uniqueCode, Long millisecond);


    /**
     * 删除幂等键
     *
     * @param uniqueCode 唯一码
     * @return Boolean
     */
    boolean delIdempotent(String uniqueCode);

    /**
     * 滑动窗口添加幂等,如果一场直接中断
     *
     * @param uniqueCode        唯一码
     * @param millisecond       控制时间
     * @param exceptionSupplier 异常生成
     * @param                异常泛型
     * @throws E 泛型
     */
     void idempotent(String uniqueCode, Long millisecond, Supplier exceptionSupplier) throws E;


    /**
     * 固定窗口
     *
     * @param uniqueCode  唯一码
     * @param millisecond 控制时间
     * @return Boolean
     */
    boolean fixedIdempotent(String uniqueCode, Long millisecond);

    /**
     * 固定窗口
     *
     * @param uniqueCode        唯一码
     * @param millisecond       控制时间
     * @param exceptionSupplier 异常生成
     * @param                异常泛型
     * @throws E 泛型
     */
     void fixedIdempotent(String uniqueCode, Long millisecond, Supplier exceptionSupplier) throws E;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy