Redisson看门狗机制和mulitLock原理保姆级别

Redisson看门狗机制

这段代码主要实现了异步处理一个任务,并根据任务结果来执行不同的操作。

首先,调用handleNoSync方法进行异步处理,并返回一个表示异步计算结果的CompletionStage对象,这里使用了threadId和ttlRemainingFuture作为参数。

然后,通过CompletableFutureWrapper将上一步返回的CompletionStage包装起来,创建一个新的CompletableFutureWrapper对象。

接下来,调用ttlRemainingFuture.thenApply方法,注册一个回调函数来处理异步任务的结果。这个回调函数接收一个ttlRemaining参数,表示异步任务的结果。

在回调函数中,首先判断ttlRemaining是否为null。如果是null,则根据leaseTime的值执行不同的操作:

如果leaseTime大于0,则将internalLockLeaseTime设置为leaseTime的毫秒值。

如果leaseTime小于等于0,则调用scheduleExpirationRenewal方法进行过期时间的续期操作,传入threadId作为参数。

最后,回调函数返回ttlRemaining作为新的CompletionStage对象的结果。

整个代码段利用了CompletableFuture和CompletionStage来实现异步任务的处理和结果的回调。

你可能感兴趣的:(redis,数据库,java,jvm,redis,spring,boot)