• 8.7. 可过期性信号量(PermitExpirableSemaphore)

    8.7. 可过期性信号量(PermitExpirableSemaphore)

    基于Redis的Redisson可过期性信号量(PermitExpirableSemaphore)是在RSemaphore对象的基础上,为每个信号增加了一个过期时间。每个信号可以通过独立的ID来辨识,释放时只能通过提交这个ID才能释放。它提供了异步(Async)、反射式(Reactive)和RxJava2标准的接口。

    1. RPermitExpirableSemaphore semaphore = redisson.getPermitExpirableSemaphore("mySemaphore");
    2. String permitId = semaphore.acquire();
    3. // 获取一个信号,有效期只有2秒钟。
    4. String permitId = semaphore.acquire(2, TimeUnit.SECONDS);
    5. // ...
    6. semaphore.release(permitId);