美文网首页
年轻人不讲武德来白piao我这个老同志

年轻人不讲武德来白piao我这个老同志

作者: 码农小胖哥 | 来源:发表于2020-11-18 09:07 被阅读0次

朋友们好啊,我是码农小胖哥。

今天有个同学问我在吗,我说什么事?

给我发个截图,我一看!噢,原来是帮忙搞个定时任务,还是动态的。

他说了两种选择,一种是用DelayQueue,一种是用消息队列。

他说,胖哥你能不能教我点招式混元功法,帮我完成这个需求。

我说可以!

我说你这两种都不好用,他不服气。

我说那你写个DelayQueue来看看,他写不出来。

他说你这估计也不会,我说我确实不会。

这是 JUC,传统底层开发是要讲基础的,必须融会贯通,我只会调包。

这种定时任务我用 Redis 更简单些。

他让我写个 DEMO,我说可以!

我一说,他啪就发了个表情

很快啊,我就打开 IDEA,一个 DEMO 就出来了。

一个重写了 Redis 的 Key 失效监听器:

/**
 *  当redis 中的key过期时,触发一个事件,并不会准点触发事件,适用于时间不是特别敏感的触发需求。
 *  我们可以算好需要执行的时间间隔作为key失效时间,这样就可以保证到点执行逻辑了。
 */
public class RedisJobEventMessageListener extends KeyExpirationEventMessageListener {

    /**
     * Instantiates a new Redis event message listener.
     *
     * @param listenerContainer the listener container
     */
    public RedisEventMessageListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }


    @Override
    protected void doHandleMessage(Message message) {
        String key = message.toString();
        // 这个就是过期的key ,过期后,也就是事件触发后对应的value是拿不到的。
        // 这里实现业务逻辑,如果是服务器集群的话需要使用分布式锁进行抢占执行。
        System.out.println("key = " + key);
        System.out.println("end = " + LocalDateTime.now());
    }
}

一个监听器的配置:

/**
 * Redis 消息监听器容器.
 *
 * @param redisConnectionFactory the redis connection factory
 * @return the redis message listener container
 */
@Bean
public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory redisConnectionFactory) {
    RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
    redisMessageListenerContainer.setConnectionFactory(redisConnectionFactory);
    return redisMessageListenerContainer;
}


/**
 * Redis 定时任务监听器注册为Bean.
 *
 * @param redisMessageListenerContainer the redis message listener container
 * @return the redis event message listener
 */
@Bean
public RedisJobEventMessageListener redisEventMessageListener(RedisMessageListenerContainer redisMessageListenerContainer){
    return new RedisJobEventMessageListener(redisMessageListenerContainer);
}

一个执行测试:

@Test
public void redisJobTest() {
    // 调用 redisTemplate 对象设置一个10s 后过期的键,不出意外 10s 后键过期后会触发事件打印结果
    redisTemplate.boundValueOps("job").set("10s",10, TimeUnit.SECONDS);
    System.out.println("begin = " + LocalDateTime.now());
    try {
        // 测试需要休眠才能看到结果
        Thread.sleep(20000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    // ---------测试结果---------
    // begin = 2020-11-18T00:19:09.272
    // key = job
    // end = 2020-11-18T00:19:19.369
}

写完之后自然是传统编程思路点到为止,我把代码发给他,我打算放松一下,摸一摸鱼。

我本来想让他关注我,我想着他会主动去关注。

我大意了,没有说。

然后十分钟后他告诉我他搞定了,而且没有关注我。

我说同学你不讲规矩,你不懂。

他忙说对不起,我不懂规矩啊!

我说年轻人,

不讲规矩,

来,

白嫖!

我五年经验的小码农。

这好吗?这不好。

我劝这位同学,

耗子尾汁。

好好反思。

好好关注。

好好点赞。

好好评论。

要以和为贵,要讲规矩,

不要老是白嫖。

多多关注:码农小胖哥

谢谢同学们!

关注公众号:码农小胖哥,获取更多资讯

个人博客:https://felord.cn

相关文章

  • 年轻人不讲武德来白piao我这个老同志

    朋友们好啊,我是码农小胖哥。 今天有个同学问我在吗,我说什么事? 给我发个截图,我一看!噢,原来是帮忙搞个定时任务...

  • 马保国:吹最大的牛,挨最毒的打,电影还没开拍,你就剧终了!

    年轻人,不讲武德,偷袭我69岁的老同志。 年轻人,不讲口德,我都70岁了,还叫我“宝国”还叫得这么顺口。 这几句可...

  • 年轻人不讲武德不仅白piao接口测试知识还白piao接口测试工具

    朋友们好啊!我是骑着白马的少年!!! 今天有个同学问我,马哥,马哥在吗?我说什么事儿。 啪啪给我打了一堆字,附加给...

  • Mysql不讲武德— —来骗、偷袭我这个27岁老同志

    1、架构模块 架构分为服务层和存储引擎层,服务层负责SQL执行操作,存储引擎层负责存储管理数据。 这就是服务层 一...

  • 年轻人,不讲武德

    最近这句话爆火,发现真的是各种百搭… 刚才某人抱怨领导大半夜让加班,然后就冒出来这一句,直接发给领导,简单...

  • 年轻人不讲武德

    人的注意力真的是个玄学 明明有的人做错了事 却能从另一个角度讲事情 可是不管你第一出发点是什么 当你做出这件事的时...

  • 年轻人不讲武德

    最近,网上有个网友问我,武德星君老师,孙悟空大闹天宫到底是怎么一回事呀? 我回忆了一下,咦,是这样的,那一天,有两...

  • 不讲武德

    前几天,看到一个学生在朋友圈里发了一张天鹅的照片,文字表述是“此鹅不讲武德”,当时没在意他说的武德什么意思。 今天...

  • 不讲武德

    今天是我加入简书的不知道多少天,可以说到现在我都没玩明白,就是把他当成一个电子日记本吧,每天记录我的琐事和心情,也...

  • 大厂不讲“武德”

    上个月,我的老东家某互联网大厂的同事们,因为银保监及人民银行联合发布的一道《通知》,而忙得不可开交。 这则《通知》...

网友评论

      本文标题:年轻人不讲武德来白piao我这个老同志

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