Class RateLimiter

java.lang.Object
org.aoju.bus.limiter.support.rate.RateLimiter
All Implemented Interfaces:
Limiter<RateLimiter>
Direct Known Subclasses:
JdkRateLimiter, RedisRatelimiter

public abstract class RateLimiter extends Object implements Limiter<RateLimiter>
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract boolean
    acquire(Object key, double rate, long capacity)
     
    boolean
    limit(Object key, Map<String,Object> args)
    对一个键值进行限制操作,并使用 args 参数 例如实现一个速率限制器,则 args 通常为速率参数
    void
    对于一个键值释放限制,例如locker 对应于locker 的unlock 操作 某些种类的没有对应的释放操作 例如速率限制器 这是该方法应该是空实现

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.aoju.bus.limiter.Limiter

    getLimiterName
  • Constructor Details

    • RateLimiter

      public RateLimiter()
  • Method Details

    • acquire

      public abstract boolean acquire(Object key, double rate, long capacity)
    • limit

      public boolean limit(Object key, Map<String,Object> args)
      Description copied from interface: Limiter
      对一个键值进行限制操作,并使用 args 参数 例如实现一个速率限制器,则 args 通常为速率参数
      Specified by:
      limit in interface Limiter<RateLimiter>
      Parameters:
      key - 键
      args - 参数
      Returns:
      true/false
    • release

      public void release(Object key, Map<String,Object> args)
      Description copied from interface: Limiter
      对于一个键值释放限制,例如locker 对应于locker 的unlock 操作 某些种类的没有对应的释放操作 例如速率限制器 这是该方法应该是空实现
      Specified by:
      release in interface Limiter<RateLimiter>
      Parameters:
      key - 键
      args - 参数