美文网首页
定时任务是恶魔(二)

定时任务是恶魔(二)

作者: 黄云斌huangyunbin | 来源:发表于2018-10-30 17:12 被阅读0次

上文的需求其实非常适合用guava的loadingCache来实现的,问题就是如何自定义过期逻辑呢

找了很久,发现loadingCache确实没有方式支持自定义过期逻辑。

那就这样放弃了吗。

树是死的,人是活的。我们可以间接的实现

基本逻辑是这样的,loadingCache本身是提供了expireAfterWrite,只要我们设置个更快的定时任务,拿到数据,自定义逻辑判断是否过期,没有的话,再put回去。

再put回去就相当于重置了expire,这样就达到了我们的目的。
public static void <K, V> resetExpiration(Cache<K, V> cache, K key) {
  V value = cache.get(key);
  //这里加上自定义判断逻辑
  if (value != null ) { 
     // 值没改变,但是过期时间改变了
    cache.put(key, value); 
  }
}

其实这个方式还是有点绕,如果有更好的方法请留言给我。

相关文章

  • 定时任务是恶魔(二)

    上文的需求其实非常适合用guava的loadingCache来实现的,问题就是如何自定义过期逻辑呢 找了很久,发现...

  • 定时任务是恶魔(一)

    cache是个好东西,guava的lodingcache是好东西。 问题1:如何自定义过期逻辑 但是lodingc...

  • 分布式定时调度-xxl-job

    一、定时任务概述 1.1 定时任务认识 1.1.1 什么是定时任务 定时任务是按照指定时间周期运行任务。使用场景为...

  • 定时任务

    目录一:系统定时任务二:系统定时任务配置文件(crontab)三:增加定时任务1.crontab -e2.1.sh...

  • MySQL定时任务

    一、查看定时任务是否开启 二、开启关闭定时任务 三、建立定时任务,实例 四、修改事件 注: 其中的存储过程为 执行...

  • 定时任务发展史(二)

    第一代定时任务系统上线用了大概半年之后,就被我们厌倦了。于是就规划了第二代定时任务系统。 第二代定时任务系统 第二...

  • 2019-07-31定时任务

    定时任务 定时任务实现方法 系统默认定时任务 用户自定义设置定时任务 定时任务配置文件 定时任务启动 定时任务样例...

  • SpringBoot中@Scheduled执行原理解析

    一:前言 本文主要介绍Spring Boot中使用定时任务的执行原理。 二:@Scheduled使用方式 定时任务...

  • day 17

    第13章 Linux系统定时任务Cron(d)服务应用实践 1.1、Linux定时任务 1.1.1、什么是定时任务...

  • 23笔记---定时任务

    今日内容 定时任务1.什么是定时任务2.为什么用定时任务3.定时任务使用情况4.定时任务如何使用5.书写时的规范 ...

网友评论

      本文标题:定时任务是恶魔(二)

      本文链接:https://www.haomeiwen.com/subject/zcggtqtx.html