定时脚本计算数据,数据今天动态变化,第二天不再变化,防止定时脚本漏计算昨天的数据,大家平时采取的是什么方案呢

2019-06-13 10:52:54 +08:00
 Paual

问题描述: 现在我们需要定时脚本去计算数据,将计算后的数据写入到数据库中,这些数据是以天单位的,我们用 order_id 和 date 来表示,也就是 order_id 在 2019-06-12 这一天的数据,我们去 5 分钟进行计算,因为它在今天的数据动态变化的,也就是今天的数据如果变化我们就会更新数据库的数据,过了今天有一部分数据就不再进行变化了,所以我们使用 crontab 定时脚本去获取,同时这些计算好的数据我们后面需要使用,所以我们想要将这部分到第二天就不变化数据放入到 Redis 中去。我现在遇到的问题是,防止定时脚本会漏掉计算今天的数据,我想的是在第二天的时候重新计算一遍数据,将数据放入到 Redis 中去。

我现在想到的解决方法是: 通过计算时间,判断如果是到了第二天,如原时间是 2019-06-12 这一天,现在到了 2019-06-13 这一天,脚本就重新计算一下,当然为了只重新计算一次,我这里会加一个标志位进行,判断,这个标志位加到 Redis 当中。以后读取这些不变化的数据都到 Redis 中进行读取。

不知道这个问题我描述清楚了么,如果各位有遇到这种类似的问题或者有好的解决方案的话,欢迎分享一下,谢谢了

1332 次点击
所在节点    程序员
2 条回复
yangg
2019-06-13 11:05:07 +08:00
{hour: [0, 7, 10], minute: 13}

我的方案,这是一个每天需要执行的任务,但是在 0,7,10 都会尝试执行
每次执行后会写入执行到的天的进度进 redis,然后下次判断是否真正的需要执行,7,10 一般都是空跑
omph
2019-06-13 13:04:47 +08:00
一图胜千言

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/573474

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX