![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编码思路
文章平均质量分 86
DDF_YiChen
世上人才千千万,我在垃圾堆里站
展开
-
基于redis库存刷盘类相关业务实现总结
Redis循环刷库存类的抽奖业务场景原创 2022-10-21 14:34:47 · 1244 阅读 · 1 评论 -
关于cron表达式的固定频率执行的疑惑
一直以来对于cron表达式用的最多的一个是任务时间要求比较及时的,可能每三五分钟执行一次,然后就是一些备份性质的定时可能会在固定的半夜某个时刻去执行,这种定时都不会有较多疑问写起来也比较没有问题,最近由于业务的问题,要写一个每小时执行一次的定时,写出来的测试结果却让人大跌眼镜比如如下表达式0 0 0/1 * * ?只要是搜索每小时执行一次的定时都会出来这么个玩意,但经过自己测试发觉似乎并没有真正意义上的固定频率的一小时,所谓的固定频率的一小时是指带上我当前的时间,然后一个小时后执行,其实是做不到这种效果原创 2020-05-21 11:32:02 · 3676 阅读 · 10 评论 -
滚动排行榜实现方式小结
介绍所谓滚动排行榜,即不是固定的某一周,某一个月这种起始点在存储和查询时在某一个时间段是固定的。比如近7天榜,近30天榜,随着每一天的变化这个榜单的取值范围是一直在变化的。那么这个滚动排行榜与一般排行榜在实现上最大的区别在哪呢?以我们最常用的redis实现方案来说,如果是固定周榜, 那么我们在一周内的任一时间点,在产生排行榜数据的时候, 只需要往这个固定的key里存入数据即可。在取值时,也直接一个命令zrevrange即可搞定。因为在这一周中的任一一天,都属于同一周。但是如果是滚动榜呢,.原创 2021-11-09 13:23:13 · 1859 阅读 · 0 评论 -
如何避免扫描数据库且保证低延迟触发定时任务的一些思考
10. 定时用户自定义触发时间用户自定义触发时间,存在不固定,所以需要秒级的扫描来触发任务。但是如果直接扫表的话,会给数据库造成比较大的压力。可以考虑基于Redis的ZSet来处理明确年月日时分秒, 即希望在一个具体的时间执行,这种执行基本就是一次性。解决方案:把时间转换为时间戳, 然后使用zset的数据格式,key根据业务决定,将同一类的定时统一划分到一个keyvalue按需决定是否需要放入定时任务所需要的数据, score即为用户设置的定时任务触发时间的时间戳。定时任务扫描, 调用r原创 2021-03-10 16:08:11 · 572 阅读 · 0 评论