JetCache @CacheRefresh原理

/ Java / 没有评论 / 1543浏览

JetCache @CacheRefresh原理

由于项目中使用了JetCache做缓存框架,其中有个较为好用的功能@CacheRefresh,简单来说就是可以按照设置自动更新时间进行缓存自动更新处理。所以花了些去看了JetCache的源码实现原理。

源码主要实现:

1

当使用@CacheRefresh 会根据你的设定的key,以及相应的策略,去创建一个给定初始延迟的间隔性的任务scheduleWithFixedDelay 之后的下次执行时间是上一次任务从执行到结束所需要的时间+给定的间隔时间。

举个例子:

比如我给定任务的初始延迟(long initialdelay)是12:00, 间隔为1分钟 。 那么这个任务会在12:00 首次创建并执行,如果该任务从执行到结束所需要消耗的时间为1分钟,那么下次任务执行的时间理应从12:01 再加上设定的间隔1分钟,那么下次任务执行时间是12:02 。这里的间隔时间(delay) 是从上次任务执行结束开始算起的。

其实与之相对有个scheduleAtFixedRate,不受任务执行时间的影响。这个感觉会更明确些,应该跟JetCache的开发者思路,我去提个issue问问。 以上欢迎大家改进和补充。