问题描述: 现在我们需要定时脚本去计算数据,将计算后的数据写入到数据库中,这些数据是以天单位的,我们用 order_id 和 date 来表示,也就是 order_id 在 2019-06-12 这一天的数据,我们去 5 分钟进行计算,因为它在今天的数据动态变化的,也就是今天的数据如果变化我们就会更新数据库的数据,过了今天有一部分数据就不再进行变化了,所以我们使用 crontab 定时脚本去获取,同时这些计算好的数据我们后面需要使用,所以我们想要将这部分到第二天就不变化数据放入到 Redis 中去。我现在遇到的问题是,防止定时脚本会漏掉计算今天的数据,我想的是在第二天的时候重新计算一遍数据,将数据放入到 Redis 中去。
我现在想到的解决方法是: 通过计算时间,判断如果是到了第二天,如原时间是 2019-06-12 这一天,现在到了 2019-06-13 这一天,脚本就重新计算一下,当然为了只重新计算一次,我这里会加一个标志位进行,判断,这个标志位加到 Redis 当中。以后读取这些不变化的数据都到 Redis 中进行读取。
不知道这个问题我描述清楚了么,如果各位有遇到这种类似的问题或者有好的解决方案的话,欢迎分享一下,谢谢了
1
yangg 2019-06-13 11:05:07 +08:00
{hour: [0, 7, 10], minute: 13}
我的方案,这是一个每天需要执行的任务,但是在 0,7,10 都会尝试执行 每次执行后会写入执行到的天的进度进 redis,然后下次判断是否真正的需要执行,7,10 一般都是空跑 |
2
omph 2019-06-13 13:04:47 +08:00
一图胜千言
|