含开始时间,截止时间的规则缓存方案--- 类似时间轮理念,连续变片段化
来源:互联网 发布:sql server企业版安装 编辑:程序博客网 时间:2024/05/16 10:01
含开始时间,截止时间 结束时间 的规则缓存方案--- 类似时间轮理念,连续变片段化
startTime endTime start_time end_time expire_time expireTime
互联网产业总有一些解决方案比较技巧。
规则引擎,需要保存规则,然后提供规则查询。规则可能有开始截止时间。
1. 一种是直接查询,
select * from rule where start_time < ${now} and end_time > ${now} and ruleName=123 and cityId=321
这样子将导致sql查询比较频繁。
2. 第二种,缓存,将 ruleName和cityId 作为联合key ,缓存十分钟。
导致的问题, 后面生效的将有十分钟时间误差。
3. 最终解决方案
select * from rule where start_time < ${now+50分钟} and end_time > ${now- 50分钟} and ruleName=123 and cityId=321
这样将后面50分钟和前面50分钟的生效的规则都取出来,然后缓存起来。
利用缓存前提下,满足需求:
a. 获取某规则当前时间前一段时间的规则
b. 获取当前和稍后一段时间( 50分钟-缓存时间 )的规则。避免因为缓存10分钟,导致将要生效的规则无法获取。
进阶: 可以提供接口查询某规则任意阶段的规则。注:如果命中率不高,没啥意义
将规则分段缓存,类似时间轮理念,这样可以把所有的数据都缓存起来。但是要保证命中率高。缓存的value有点多。
1. 获取以天为维度的生效缓存。缓存时间,根据业务需求定。( 比如乘客支付,经常是延后3天内支付,假如第三天支付,要获取下单时刻的分润规则,输入 下单时间,规则名,城市id. 基本上都没有缓存,直接数据库搜索得到相关数据。这个设计不好,最好是下单时发送mq,然后接到mq,进行分润规则)
- 含开始时间,截止时间的规则缓存方案--- 类似时间轮理念,连续变片段化
- js时间空间 开始时间 截止时间
- 活动开始和截止时间倒计时
- 输出从指定开始时间到指定截止时间的所有日期
- 吞吐量 截止时间 响应时间
- 程序员的时间片段
- 关于两个时间控件开始时间到结束时间的问题(含中文设置)
- 趣图:截止时间前后的程序员
- JS 判断字符串是否为时间格式&开始时间不能大于截止时间
- 根据传入的时间,自动计算规则时间(如:包期时段的开始时间和结束时间)
- 给一个开始时间和一个结束时间,求中间的连续时间(用java实现)?
- 控制缓存的时间
- 抓住时间管理的关键理念
- 类似这种时间的格式化
- 开始时间
- Oracle产生连续的时间
- 本周的开始时间和结束时间
- 指定月份获取每周开始和截止时间,不足一周下个月的补足一周,以周六为标准
- HBase(0.96以上版本)过滤器Filter详解及实例代码
- Android屏幕适配
- hadoop一些让人崩溃的错误
- 在Arduino平台点亮LED灯实验
- leetcode 237. Delete Node in a Linked List
- 含开始时间,截止时间的规则缓存方案--- 类似时间轮理念,连续变片段化
- DSS分发压力实验
- AES加密算法
- maven未设置HTTP代理报错
- 链表回文——《编程之法》课后题答案
- html5响应式布局案例
- Harmonic Number 调和级数
- Android 数据绑定框架DataBinding,堪称解决界面逻辑的黑科技
- 抓取搜狗壁纸公园的图片(一)